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
RuoYi Vue
Commits
d00dc3b0
Unverified
Commit
d00dc3b0
authored
Feb 12, 2022
by
若依
Committed by
Gitee
Feb 12, 2022
Browse files
!426 修正单词拼写错误
Merge pull request !426 from 稚屿/master
parents
f5c69bae
c99eb980
Changes
22
Hide whitespace changes
Inline
Side-by-side
ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java
View file @
d00dc3b0
...
@@ -41,8 +41,7 @@ public class DictUtils
...
@@ -41,8 +41,7 @@ public class DictUtils
Object
cacheObj
=
SpringUtils
.
getBean
(
RedisCache
.
class
).
getCacheObject
(
getCacheKey
(
key
));
Object
cacheObj
=
SpringUtils
.
getBean
(
RedisCache
.
class
).
getCacheObject
(
getCacheKey
(
key
));
if
(
StringUtils
.
isNotNull
(
cacheObj
))
if
(
StringUtils
.
isNotNull
(
cacheObj
))
{
{
List
<
SysDictData
>
dictDatas
=
StringUtils
.
cast
(
cacheObj
);
return
StringUtils
.
cast
(
cacheObj
);
return
dictDatas
;
}
}
return
null
;
return
null
;
}
}
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java
View file @
d00dc3b0
...
@@ -18,8 +18,7 @@ public class ExceptionUtil
...
@@ -18,8 +18,7 @@ public class ExceptionUtil
{
{
StringWriter
sw
=
new
StringWriter
();
StringWriter
sw
=
new
StringWriter
();
e
.
printStackTrace
(
new
PrintWriter
(
sw
,
true
));
e
.
printStackTrace
(
new
PrintWriter
(
sw
,
true
));
String
str
=
sw
.
toString
();
return
sw
.
toString
();
return
str
;
}
}
public
static
String
getRootErrorMessage
(
Exception
e
)
public
static
String
getRootErrorMessage
(
Exception
e
)
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java
View file @
d00dc3b0
...
@@ -99,9 +99,8 @@ public class ServletUtils
...
@@ -99,9 +99,8 @@ public class ServletUtils
*
*
* @param response 渲染对象
* @param response 渲染对象
* @param string 待渲染的字符串
* @param string 待渲染的字符串
* @return null
*/
*/
public
static
String
renderString
(
HttpServletResponse
response
,
String
string
)
public
static
void
renderString
(
HttpServletResponse
response
,
String
string
)
{
{
try
try
{
{
...
@@ -114,7 +113,6 @@ public class ServletUtils
...
@@ -114,7 +113,6 @@ public class ServletUtils
{
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
return
null
;
}
}
/**
/**
...
@@ -125,13 +123,13 @@ public class ServletUtils
...
@@ -125,13 +123,13 @@ public class ServletUtils
public
static
boolean
isAjaxRequest
(
HttpServletRequest
request
)
public
static
boolean
isAjaxRequest
(
HttpServletRequest
request
)
{
{
String
accept
=
request
.
getHeader
(
"accept"
);
String
accept
=
request
.
getHeader
(
"accept"
);
if
(
accept
!=
null
&&
accept
.
indexOf
(
"application/json"
)
!=
-
1
)
if
(
accept
!=
null
&&
accept
.
contains
(
"application/json"
))
{
{
return
true
;
return
true
;
}
}
String
xRequestedWith
=
request
.
getHeader
(
"X-Requested-With"
);
String
xRequestedWith
=
request
.
getHeader
(
"X-Requested-With"
);
if
(
xRequestedWith
!=
null
&&
xRequestedWith
.
indexOf
(
"XMLHttpRequest"
)
!=
-
1
)
if
(
xRequestedWith
!=
null
&&
xRequestedWith
.
contains
(
"XMLHttpRequest"
))
{
{
return
true
;
return
true
;
}
}
...
@@ -143,10 +141,6 @@ public class ServletUtils
...
@@ -143,10 +141,6 @@ public class ServletUtils
}
}
String
ajax
=
request
.
getParameter
(
"__ajax"
);
String
ajax
=
request
.
getParameter
(
"__ajax"
);
if
(
StringUtils
.
inStringIgnoreCase
(
ajax
,
"json"
,
"xml"
))
return
StringUtils
.
inStringIgnoreCase
(
ajax
,
"json"
,
"xml"
);
{
return
true
;
}
return
false
;
}
}
}
}
ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java
View file @
d00dc3b0
...
@@ -208,7 +208,6 @@ public class VerifyCodeUtils
...
@@ -208,7 +208,6 @@ public class VerifyCodeUtils
int
period
=
random
.
nextInt
(
40
)
+
10
;
// 50;
int
period
=
random
.
nextInt
(
40
)
+
10
;
// 50;
boolean
borderGap
=
true
;
int
frames
=
20
;
int
frames
=
20
;
int
phase
=
7
;
int
phase
=
7
;
for
(
int
i
=
0
;
i
<
w1
;
i
++)
for
(
int
i
=
0
;
i
<
w1
;
i
++)
...
@@ -216,13 +215,9 @@ public class VerifyCodeUtils
...
@@ -216,13 +215,9 @@ public class VerifyCodeUtils
double
d
=
(
double
)
(
period
>>
1
)
double
d
=
(
double
)
(
period
>>
1
)
*
Math
.
sin
((
double
)
i
/
(
double
)
period
+
(
6.2831853071795862
D
*
(
double
)
phase
)
/
(
double
)
frames
);
*
Math
.
sin
((
double
)
i
/
(
double
)
period
+
(
6.2831853071795862
D
*
(
double
)
phase
)
/
(
double
)
frames
);
g
.
copyArea
(
i
,
0
,
1
,
h1
,
0
,
(
int
)
d
);
g
.
copyArea
(
i
,
0
,
1
,
h1
,
0
,
(
int
)
d
);
if
(
borderGap
)
g
.
setColor
(
color
);
{
g
.
drawLine
(
i
,
(
int
)
d
,
i
,
0
);
g
.
setColor
(
color
);
g
.
drawLine
(
i
,
(
int
)
d
+
h1
,
i
,
h1
);
g
.
drawLine
(
i
,
(
int
)
d
,
i
,
0
);
g
.
drawLine
(
i
,
(
int
)
d
+
h1
,
i
,
h1
);
}
}
}
}
}
}
}
\ No newline at end of file
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java
View file @
d00dc3b0
...
@@ -2,6 +2,8 @@ package com.ruoyi.common.utils.file;
...
@@ -2,6 +2,8 @@ package com.ruoyi.common.utils.file;
import
java.io.File
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.Objects
;
import
org.apache.commons.io.FilenameUtils
;
import
org.apache.commons.io.FilenameUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
com.ruoyi.common.config.RuoYiConfig
;
import
com.ruoyi.common.config.RuoYiConfig
;
...
@@ -100,7 +102,7 @@ public class FileUploadUtils
...
@@ -100,7 +102,7 @@ public class FileUploadUtils
throws
FileSizeLimitExceededException
,
IOException
,
FileNameLengthLimitExceededException
,
throws
FileSizeLimitExceededException
,
IOException
,
FileNameLengthLimitExceededException
,
InvalidExtensionException
InvalidExtensionException
{
{
int
fileNamelength
=
file
.
getOriginalFilename
().
length
();
int
fileNamelength
=
Objects
.
requireNonNull
(
file
.
getOriginalFilename
()
)
.
length
();
if
(
fileNamelength
>
FileUploadUtils
.
DEFAULT_FILE_NAME_LENGTH
)
if
(
fileNamelength
>
FileUploadUtils
.
DEFAULT_FILE_NAME_LENGTH
)
{
{
throw
new
FileNameLengthLimitExceededException
(
FileUploadUtils
.
DEFAULT_FILE_NAME_LENGTH
);
throw
new
FileNameLengthLimitExceededException
(
FileUploadUtils
.
DEFAULT_FILE_NAME_LENGTH
);
...
@@ -112,8 +114,7 @@ public class FileUploadUtils
...
@@ -112,8 +114,7 @@ public class FileUploadUtils
File
desc
=
getAbsoluteFile
(
baseDir
,
fileName
);
File
desc
=
getAbsoluteFile
(
baseDir
,
fileName
);
file
.
transferTo
(
desc
);
file
.
transferTo
(
desc
);
String
pathFileName
=
getPathFileName
(
baseDir
,
fileName
);
return
getPathFileName
(
baseDir
,
fileName
);
return
pathFileName
;
}
}
/**
/**
...
@@ -145,8 +146,7 @@ public class FileUploadUtils
...
@@ -145,8 +146,7 @@ public class FileUploadUtils
{
{
int
dirLastIndex
=
RuoYiConfig
.
getProfile
().
length
()
+
1
;
int
dirLastIndex
=
RuoYiConfig
.
getProfile
().
length
()
+
1
;
String
currentDir
=
StringUtils
.
substring
(
uploadDir
,
dirLastIndex
);
String
currentDir
=
StringUtils
.
substring
(
uploadDir
,
dirLastIndex
);
String
pathFileName
=
Constants
.
RESOURCE_PREFIX
+
"/"
+
currentDir
+
"/"
+
fileName
;
return
Constants
.
RESOURCE_PREFIX
+
"/"
+
currentDir
+
"/"
+
fileName
;
return
pathFileName
;
}
}
/**
/**
...
@@ -161,7 +161,7 @@ public class FileUploadUtils
...
@@ -161,7 +161,7 @@ public class FileUploadUtils
throws
FileSizeLimitExceededException
,
InvalidExtensionException
throws
FileSizeLimitExceededException
,
InvalidExtensionException
{
{
long
size
=
file
.
getSize
();
long
size
=
file
.
getSize
();
if
(
DEFAULT_MAX_SIZE
!=
-
1
&&
size
>
DEFAULT_MAX_SIZE
)
if
(
size
>
DEFAULT_MAX_SIZE
)
{
{
throw
new
FileSizeLimitExceededException
(
DEFAULT_MAX_SIZE
/
1024
/
1024
);
throw
new
FileSizeLimitExceededException
(
DEFAULT_MAX_SIZE
/
1024
/
1024
);
}
}
...
@@ -228,7 +228,7 @@ public class FileUploadUtils
...
@@ -228,7 +228,7 @@ public class FileUploadUtils
String
extension
=
FilenameUtils
.
getExtension
(
file
.
getOriginalFilename
());
String
extension
=
FilenameUtils
.
getExtension
(
file
.
getOriginalFilename
());
if
(
StringUtils
.
isEmpty
(
extension
))
if
(
StringUtils
.
isEmpty
(
extension
))
{
{
extension
=
MimeTypeUtils
.
getExtension
(
file
.
getContentType
());
extension
=
MimeTypeUtils
.
getExtension
(
Objects
.
requireNonNull
(
file
.
getContentType
())
)
;
}
}
return
extension
;
return
extension
;
}
}
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java
View file @
d00dc3b0
...
@@ -59,7 +59,7 @@ public class ImageUtils
...
@@ -59,7 +59,7 @@ public class ImageUtils
/**
/**
* 读取文件为字节数据
* 读取文件为字节数据
*
*
* @param
key
地址
* @param
url
地址
* @return 字节数据
* @return 字节数据
*/
*/
public
static
byte
[]
readFile
(
String
url
)
public
static
byte
[]
readFile
(
String
url
)
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java
View file @
d00dc3b0
...
@@ -5,6 +5,7 @@ import java.io.IOException;
...
@@ -5,6 +5,7 @@ import java.io.IOException;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.io.InputStreamReader
;
import
java.nio.charset.Charset
;
import
java.nio.charset.Charset
;
import
java.nio.charset.StandardCharsets
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletRequest
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -25,7 +26,7 @@ public class HttpHelper
...
@@ -25,7 +26,7 @@ public class HttpHelper
BufferedReader
reader
=
null
;
BufferedReader
reader
=
null
;
try
(
InputStream
inputStream
=
request
.
getInputStream
())
try
(
InputStream
inputStream
=
request
.
getInputStream
())
{
{
reader
=
new
BufferedReader
(
new
InputStreamReader
(
inputStream
,
Charset
.
forName
(
"UTF-8"
)
));
reader
=
new
BufferedReader
(
new
InputStreamReader
(
inputStream
,
StandardCharsets
.
UTF_8
));
String
line
=
""
;
String
line
=
""
;
while
((
line
=
reader
.
readLine
())
!=
null
)
while
((
line
=
reader
.
readLine
())
!=
null
)
{
{
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
View file @
d00dc3b0
...
@@ -9,6 +9,7 @@ import java.net.ConnectException;
...
@@ -9,6 +9,7 @@ import java.net.ConnectException;
import
java.net.SocketTimeoutException
;
import
java.net.SocketTimeoutException
;
import
java.net.URL
;
import
java.net.URL
;
import
java.net.URLConnection
;
import
java.net.URLConnection
;
import
java.nio.charset.StandardCharsets
;
import
java.security.cert.X509Certificate
;
import
java.security.cert.X509Certificate
;
import
javax.net.ssl.HostnameVerifier
;
import
javax.net.ssl.HostnameVerifier
;
import
javax.net.ssl.HttpsURLConnection
;
import
javax.net.ssl.HttpsURLConnection
;
...
@@ -130,9 +131,8 @@ public class HttpUtils
...
@@ -130,9 +131,8 @@ public class HttpUtils
StringBuilder
result
=
new
StringBuilder
();
StringBuilder
result
=
new
StringBuilder
();
try
try
{
{
String
urlNameString
=
url
;
log
.
info
(
"sendPost - {}"
,
url
);
log
.
info
(
"sendPost - {}"
,
urlNameString
);
URL
realUrl
=
new
URL
(
url
);
URL
realUrl
=
new
URL
(
urlNameString
);
URLConnection
conn
=
realUrl
.
openConnection
();
URLConnection
conn
=
realUrl
.
openConnection
();
conn
.
setRequestProperty
(
"accept"
,
"*/*"
);
conn
.
setRequestProperty
(
"accept"
,
"*/*"
);
conn
.
setRequestProperty
(
"connection"
,
"Keep-Alive"
);
conn
.
setRequestProperty
(
"connection"
,
"Keep-Alive"
);
...
@@ -144,7 +144,7 @@ public class HttpUtils
...
@@ -144,7 +144,7 @@ public class HttpUtils
out
=
new
PrintWriter
(
conn
.
getOutputStream
());
out
=
new
PrintWriter
(
conn
.
getOutputStream
());
out
.
print
(
param
);
out
.
print
(
param
);
out
.
flush
();
out
.
flush
();
in
=
new
BufferedReader
(
new
InputStreamReader
(
conn
.
getInputStream
(),
"utf-8"
));
in
=
new
BufferedReader
(
new
InputStreamReader
(
conn
.
getInputStream
(),
StandardCharsets
.
UTF_8
));
String
line
;
String
line
;
while
((
line
=
in
.
readLine
())
!=
null
)
while
((
line
=
in
.
readLine
())
!=
null
)
{
{
...
@@ -218,7 +218,7 @@ public class HttpUtils
...
@@ -218,7 +218,7 @@ public class HttpUtils
{
{
if
(
ret
!=
null
&&
!
""
.
equals
(
ret
.
trim
()))
if
(
ret
!=
null
&&
!
""
.
equals
(
ret
.
trim
()))
{
{
result
.
append
(
new
String
(
ret
.
getBytes
(
"
ISO
-
8859
-1"
),
"utf-8"
));
result
.
append
(
new
String
(
ret
.
getBytes
(
StandardCharsets
.
ISO
_
8859
_1
),
StandardCharsets
.
UTF_8
));
}
}
}
}
log
.
info
(
"recv - {}"
,
result
);
log
.
info
(
"recv - {}"
,
result
);
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java
View file @
d00dc3b0
...
@@ -25,7 +25,6 @@ public class AddressUtils
...
@@ -25,7 +25,6 @@ public class AddressUtils
public
static
String
getRealAddressByIP
(
String
ip
)
public
static
String
getRealAddressByIP
(
String
ip
)
{
{
String
address
=
UNKNOWN
;
// 内网不查询
// 内网不查询
if
(
IpUtils
.
internalIp
(
ip
))
if
(
IpUtils
.
internalIp
(
ip
))
{
{
...
@@ -51,6 +50,6 @@ public class AddressUtils
...
@@ -51,6 +50,6 @@ public class AddressUtils
log
.
error
(
"获取地理位置异常 {}"
,
ip
);
log
.
error
(
"获取地理位置异常 {}"
,
ip
);
}
}
}
}
return
address
;
return
UNKNOWN
;
}
}
}
}
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
View file @
d00dc3b0
...
@@ -1121,7 +1121,7 @@ public class ExcelUtil<T>
...
@@ -1121,7 +1121,7 @@ public class ExcelUtil<T>
if
(
StringUtils
.
isNotEmpty
(
excel
.
targetAttr
()))
if
(
StringUtils
.
isNotEmpty
(
excel
.
targetAttr
()))
{
{
String
target
=
excel
.
targetAttr
();
String
target
=
excel
.
targetAttr
();
if
(
target
.
indexOf
(
"."
)
>
-
1
)
if
(
target
.
contains
(
"."
)
)
{
{
String
[]
targets
=
target
.
split
(
"[.]"
);
String
[]
targets
=
target
.
split
(
"[.]"
);
for
(
String
name
:
targets
)
for
(
String
name
:
targets
)
...
@@ -1216,7 +1216,7 @@ public class ExcelUtil<T>
...
@@ -1216,7 +1216,7 @@ public class ExcelUtil<T>
for
(
Object
[]
os
:
this
.
fields
)
for
(
Object
[]
os
:
this
.
fields
)
{
{
Excel
excel
=
(
Excel
)
os
[
1
];
Excel
excel
=
(
Excel
)
os
[
1
];
maxHeight
=
maxHeight
>
excel
.
height
()
?
maxHeight
:
excel
.
height
();
maxHeight
=
Math
.
max
(
maxHeight
,
excel
.
height
()
)
;
}
}
return
(
short
)
(
maxHeight
*
20
);
return
(
short
)
(
maxHeight
*
20
);
}
}
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java
View file @
d00dc3b0
package
com.ruoyi.common.utils.sign
;
package
com.ruoyi.common.utils.sign
;
import
java.nio.charset.StandardCharsets
;
import
java.security.MessageDigest
;
import
java.security.MessageDigest
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -55,7 +56,7 @@ public class Md5Utils
...
@@ -55,7 +56,7 @@ public class Md5Utils
{
{
try
try
{
{
return
new
String
(
toHex
(
md5
(
s
)).
getBytes
(
"UTF-8"
),
"UTF-8"
);
return
new
String
(
toHex
(
md5
(
s
)).
getBytes
(
StandardCharsets
.
UTF_8
),
StandardCharsets
.
UTF_8
);
}
}
catch
(
Exception
e
)
catch
(
Exception
e
)
{
{
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java
View file @
d00dc3b0
...
@@ -50,10 +50,8 @@ public class SqlUtil
...
@@ -50,10 +50,8 @@ public class SqlUtil
return
;
return
;
}
}
String
[]
sqlKeywords
=
StringUtils
.
split
(
SQL_REGEX
,
"\\|"
);
String
[]
sqlKeywords
=
StringUtils
.
split
(
SQL_REGEX
,
"\\|"
);
for
(
int
i
=
0
;
i
<
sqlKeywords
.
length
;
i
++)
for
(
String
sqlKeyword
:
sqlKeywords
)
{
{
if
(
StringUtils
.
indexOfIgnoreCase
(
value
,
sqlKeyword
)
>
-
1
)
{
if
(
StringUtils
.
indexOfIgnoreCase
(
value
,
sqlKeywords
[
i
])
>
-
1
)
{
throw
new
UtilException
(
"参数存在SQL注入风险"
);
throw
new
UtilException
(
"参数存在SQL注入风险"
);
}
}
}
}
...
...
ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java
View file @
d00dc3b0
...
@@ -151,8 +151,7 @@ public class GenUtils
...
@@ -151,8 +151,7 @@ public class GenUtils
{
{
int
lastIndex
=
packageName
.
lastIndexOf
(
"."
);
int
lastIndex
=
packageName
.
lastIndexOf
(
"."
);
int
nameLength
=
packageName
.
length
();
int
nameLength
=
packageName
.
length
();
String
moduleName
=
StringUtils
.
substring
(
packageName
,
lastIndex
+
1
,
nameLength
);
return
StringUtils
.
substring
(
packageName
,
lastIndex
+
1
,
nameLength
);
return
moduleName
;
}
}
/**
/**
...
@@ -165,8 +164,7 @@ public class GenUtils
...
@@ -165,8 +164,7 @@ public class GenUtils
{
{
int
lastIndex
=
tableName
.
lastIndexOf
(
"_"
);
int
lastIndex
=
tableName
.
lastIndexOf
(
"_"
);
int
nameLength
=
tableName
.
length
();
int
nameLength
=
tableName
.
length
();
String
businessName
=
StringUtils
.
substring
(
tableName
,
lastIndex
+
1
,
nameLength
);
return
StringUtils
.
substring
(
tableName
,
lastIndex
+
1
,
nameLength
);
return
businessName
;
}
}
/**
/**
...
...
ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java
View file @
d00dc3b0
...
@@ -228,8 +228,7 @@ public class VelocityUtils
...
@@ -228,8 +228,7 @@ public class VelocityUtils
public
static
String
getPackagePrefix
(
String
packageName
)
public
static
String
getPackagePrefix
(
String
packageName
)
{
{
int
lastIndex
=
packageName
.
lastIndexOf
(
"."
);
int
lastIndex
=
packageName
.
lastIndexOf
(
"."
);
String
basePackage
=
StringUtils
.
substring
(
packageName
,
0
,
lastIndex
);
return
StringUtils
.
substring
(
packageName
,
0
,
lastIndex
);
return
basePackage
;
}
}
/**
/**
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
View file @
d00dc3b0
...
@@ -63,12 +63,9 @@ public class SysDeptServiceImpl implements ISysDeptService
...
@@ -63,12 +63,9 @@ public class SysDeptServiceImpl implements ISysDeptService
{
{
tempList
.
add
(
dept
.
getDeptId
());
tempList
.
add
(
dept
.
getDeptId
());
}
}
for
(
Iterator
<
SysDept
>
iterator
=
depts
.
iterator
();
iterator
.
hasNext
();)
for
(
SysDept
dept
:
depts
)
{
{
SysDept
dept
=
(
SysDept
)
iterator
.
next
();
// 如果是顶级节点, 遍历该父节点的所有子节点
// 如果是顶级节点, 遍历该父节点的所有子节点
if
(!
tempList
.
contains
(
dept
.
getParentId
()))
if
(!
tempList
.
contains
(
dept
.
getParentId
()))
{
{
recursionFn
(
depts
,
dept
);
recursionFn
(
depts
,
dept
);
returnList
.
add
(
dept
);
returnList
.
add
(
dept
);
}
}
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
View file @
d00dc3b0
...
@@ -498,7 +498,7 @@ public class SysMenuServiceImpl implements ISysMenuService
...
@@ -498,7 +498,7 @@ public class SysMenuServiceImpl implements ISysMenuService
*/
*/
private
boolean
hasChild
(
List
<
SysMenu
>
list
,
SysMenu
t
)
private
boolean
hasChild
(
List
<
SysMenu
>
list
,
SysMenu
t
)
{
{
return
getChildList
(
list
,
t
).
size
()
>
0
?
true
:
false
;
return
getChildList
(
list
,
t
).
size
()
>
0
;
}
}
/**
/**
...
...
ruoyi-ui/src/utils/generator/drawingDefa
l
ut.js
→
ruoyi-ui/src/utils/generator/drawingDefau
l
t.js
View file @
d00dc3b0
export
default
[
export
default
[
{
{
layout
:
'
colFormItem
'
,
layout
:
'
colFormItem
'
,
tagIcon
:
'
input
'
,
tagIcon
:
'
input
'
,
label
:
'
手机号
'
,
label
:
'
手机号
'
,
vModel
:
'
mobile
'
,
vModel
:
'
mobile
'
,
formId
:
6
,
formId
:
6
,
tag
:
'
el-input
'
,
tag
:
'
el-input
'
,
placeholder
:
'
请输入手机号
'
,
placeholder
:
'
请输入手机号
'
,
defaultValue
:
''
,
defaultValue
:
''
,
span
:
24
,
span
:
24
,
style
:
{
width
:
'
100%
'
},
style
:
{
width
:
'
100%
'
},
clearable
:
true
,
clearable
:
true
,
prepend
:
''
,
prepend
:
''
,
append
:
''
,
append
:
''
,
'
prefix-icon
'
:
'
el-icon-mobile
'
,
'
prefix-icon
'
:
'
el-icon-mobile
'
,
'
suffix-icon
'
:
''
,
'
suffix-icon
'
:
''
,
maxlength
:
11
,
maxlength
:
11
,
'
show-word-limit
'
:
true
,
'
show-word-limit
'
:
true
,
readonly
:
false
,
readonly
:
false
,
disabled
:
false
,
disabled
:
false
,
required
:
true
,
required
:
true
,
changeTag
:
true
,
changeTag
:
true
,
regList
:
[{
regList
:
[{
pattern
:
'
/^1(3|4|5|7|8|9)
\\
d{9}$/
'
,
pattern
:
'
/^1(3|4|5|7|8|9)
\\
d{9}$/
'
,
message
:
'
手机号格式错误
'
message
:
'
手机号格式错误
'
}]
}]
}
}
]
]
ruoyi-ui/src/utils/generator/html.js
View file @
d00dc3b0
/* eslint-disable max-len */
/* eslint-disable max-len */
import
{
trigger
}
from
'
./config
'
import
{
trigger
}
from
'
./config
'
let
confGlobal
let
confGlobal
let
someSpanIsNot24
let
someSpanIsNot24
export
function
dialogWrapper
(
str
)
{
export
function
dialogWrapper
(
str
)
{
return
`<el-dialog v-bind="$attrs" v-on="$listeners" @open="onOpen" @close="onClose" title="Dialog Tit
i
le">
return
`<el-dialog v-bind="$attrs" v-on="$listeners" @open="onOpen" @close="onClose" title="Dialog Title">
${
str
}
${
str
}
<div slot="footer">
<div slot="footer">
<el-button @click="close">取消</el-button>
<el-button @click="close">取消</el-button>
<el-button type="primary" @click="hand
e
lConfirm">确定</el-button>
<el-button type="primary" @click="handl
e
Confirm">确定</el-button>
</div>
</div>
</el-dialog>`
</el-dialog>`
}
}
export
function
vueTemplate
(
str
)
{
export
function
vueTemplate
(
str
)
{
return
`<template>
return
`<template>
<div>
<div>
${
str
}
${
str
}
</div>
</div>
</template>`
</template>`
}
}
export
function
vueScript
(
str
)
{
export
function
vueScript
(
str
)
{
return
`<script>
return
`<script>
${
str
}
${
str
}
</script>`
</script>`
}
}
export
function
cssStyle
(
cssStr
)
{
export
function
cssStyle
(
cssStr
)
{
return
`<style>
return
`<style>
${
cssStr
}
${
cssStr
}
</style>`
</style>`
}
}
function
buildFormTemplate
(
conf
,
child
,
type
)
{
function
buildFormTemplate
(
conf
,
child
,
type
)
{
let
labelPosition
=
''
let
labelPosition
=
''
if
(
conf
.
labelPosition
!==
'
right
'
)
{
if
(
conf
.
labelPosition
!==
'
right
'
)
{
labelPosition
=
`label-position="
${
conf
.
labelPosition
}
"`
labelPosition
=
`label-position="
${
conf
.
labelPosition
}
"`
}
}
const
disabled
=
conf
.
disabled
?
`:disabled="
${
conf
.
disabled
}
"`
:
''
const
disabled
=
conf
.
disabled
?
`:disabled="
${
conf
.
disabled
}
"`
:
''
let
str
=
`<el-form ref="
${
conf
.
formRef
}
" :model="
${
conf
.
formModel
}
" :rules="
${
conf
.
formRules
}
" size="
${
conf
.
size
}
"
${
disabled
}
label-width="
${
conf
.
labelWidth
}
px"
${
labelPosition
}
>
let
str
=
`<el-form ref="
${
conf
.
formRef
}
" :model="
${
conf
.
formModel
}
" :rules="
${
conf
.
formRules
}
" size="
${
conf
.
size
}
"
${
disabled
}
label-width="
${
conf
.
labelWidth
}
px"
${
labelPosition
}
>
${
child
}
${
child
}
${
buildFromBtns
(
conf
,
type
)}
${
buildFromBtns
(
conf
,
type
)}
</el-form>`
</el-form>`
if
(
someSpanIsNot24
)
{
if
(
someSpanIsNot24
)
{
str
=
`<el-row :gutter="
${
conf
.
gutter
}
">
str
=
`<el-row :gutter="
${
conf
.
gutter
}
">
${
str
}
${
str
}
</el-row>`
</el-row>`
}
}
return
str
return
str
}
}
function
buildFromBtns
(
conf
,
type
)
{
function
buildFromBtns
(
conf
,
type
)
{
let
str
=
''
let
str
=
''
if
(
conf
.
formBtns
&&
type
===
'
file
'
)
{
if
(
conf
.
formBtns
&&
type
===
'
file
'
)
{
str
=
`<el-form-item size="large">
str
=
`<el-form-item size="large">
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>`
</el-form-item>`
if
(
someSpanIsNot24
)
{
if
(
someSpanIsNot24
)
{
str
=
`<el-col :span="24">
str
=
`<el-col :span="24">
${
str
}
${
str
}
</el-col>`
</el-col>`
}
}
}
}
return
str
return
str
}
}
// span不为24的用el-col包裹
// span不为24的用el-col包裹
function
colWrapper
(
element
,
str
)
{
function
colWrapper
(
element
,
str
)
{
if
(
someSpanIsNot24
||
element
.
span
!==
24
)
{
if
(
someSpanIsNot24
||
element
.
span
!==
24
)
{
return
`<el-col :span="
${
element
.
span
}
">
return
`<el-col :span="
${
element
.
span
}
">
${
str
}
${
str
}
</el-col>`
</el-col>`
}
}
return
str
return
str
}
}
const
layouts
=
{
const
layouts
=
{
colFormItem
(
element
)
{
colFormItem
(
element
)
{
let
labelWidth
=
''
let
labelWidth
=
''
if
(
element
.
labelWidth
&&
element
.
labelWidth
!==
confGlobal
.
labelWidth
)
{
if
(
element
.
labelWidth
&&
element
.
labelWidth
!==
confGlobal
.
labelWidth
)
{
labelWidth
=
`label-width="
${
element
.
labelWidth
}
px"`
labelWidth
=
`label-width="
${
element
.
labelWidth
}
px"`
}
}
const
required
=
!
trigger
[
element
.
tag
]
&&
element
.
required
?
'
required
'
:
''
const
required
=
!
trigger
[
element
.
tag
]
&&
element
.
required
?
'
required
'
:
''
const
tagDom
=
tags
[
element
.
tag
]
?
tags
[
element
.
tag
](
element
)
:
null
const
tagDom
=
tags
[
element
.
tag
]
?
tags
[
element
.
tag
](
element
)
:
null
let
str
=
`<el-form-item
${
labelWidth
}
label="
${
element
.
label
}
" prop="
${
element
.
vModel
}
"
${
required
}
>
let
str
=
`<el-form-item
${
labelWidth
}
label="
${
element
.
label
}
" prop="
${
element
.
vModel
}
"
${
required
}
>
${
tagDom
}
${
tagDom
}
</el-form-item>`
</el-form-item>`
str
=
colWrapper
(
element
,
str
)
str
=
colWrapper
(
element
,
str
)
return
str
return
str
},
},
rowFormItem
(
element
)
{
rowFormItem
(
element
)
{
const
type
=
element
.
type
===
'
default
'
?
''
:
`type="
${
element
.
type
}
"`
const
type
=
element
.
type
===
'
default
'
?
''
:
`type="
${
element
.
type
}
"`
const
justify
=
element
.
type
===
'
default
'
?
''
:
`justify="
${
element
.
justify
}
"`
const
justify
=
element
.
type
===
'
default
'
?
''
:
`justify="
${
element
.
justify
}
"`
const
align
=
element
.
type
===
'
default
'
?
''
:
`align="
${
element
.
align
}
"`
const
align
=
element
.
type
===
'
default
'
?
''
:
`align="
${
element
.
align
}
"`
const
gutter
=
element
.
gutter
?
`gutter="
${
element
.
gutter
}
"`
:
''
const
gutter
=
element
.
gutter
?
`gutter="
${
element
.
gutter
}
"`
:
''
const
children
=
element
.
children
.
map
(
el
=>
layouts
[
el
.
layout
](
el
))
const
children
=
element
.
children
.
map
(
el
=>
layouts
[
el
.
layout
](
el
))
let
str
=
`<el-row
${
type
}
${
justify
}
${
align
}
${
gutter
}
>
let
str
=
`<el-row
${
type
}
${
justify
}
${
align
}
${
gutter
}
>
${
children
.
join
(
'
\n
'
)}
${
children
.
join
(
'
\n
'
)}
</el-row>`
</el-row>`
str
=
colWrapper
(
element
,
str
)
str
=
colWrapper
(
element
,
str
)
return
str
return
str
}
}
}
}
const
tags
=
{
const
tags
=
{
'
el-button
'
:
el
=>
{
'
el-button
'
:
el
=>
{
const
{
const
{
tag
,
disabled
tag
,
disabled
}
=
attrBuilder
(
el
)
}
=
attrBuilder
(
el
)
const
type
=
el
.
type
?
`type="
${
el
.
type
}
"`
:
''
const
type
=
el
.
type
?
`type="
${
el
.
type
}
"`
:
''
const
icon
=
el
.
icon
?
`icon="
${
el
.
icon
}
"`
:
''
const
icon
=
el
.
icon
?
`icon="
${
el
.
icon
}
"`
:
''
const
size
=
el
.
size
?
`size="
${
el
.
size
}
"`
:
''
const
size
=
el
.
size
?
`size="
${
el
.
size
}
"`
:
''
let
child
=
buildElButtonChild
(
el
)
let
child
=
buildElButtonChild
(
el
)
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
return
`<
${
el
.
tag
}
${
type
}
${
icon
}
${
size
}
${
disabled
}
>
${
child
}
</
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
type
}
${
icon
}
${
size
}
${
disabled
}
>
${
child
}
</
${
el
.
tag
}
>`
},
},
'
el-input
'
:
el
=>
{
'
el-input
'
:
el
=>
{
const
{
const
{
disabled
,
vModel
,
clearable
,
placeholder
,
width
disabled
,
vModel
,
clearable
,
placeholder
,
width
}
=
attrBuilder
(
el
)
}
=
attrBuilder
(
el
)
const
maxlength
=
el
.
maxlength
?
`:maxlength="
${
el
.
maxlength
}
"`
:
''
const
maxlength
=
el
.
maxlength
?
`:maxlength="
${
el
.
maxlength
}
"`
:
''
const
showWordLimit
=
el
[
'
show-word-limit
'
]
?
'
show-word-limit
'
:
''
const
showWordLimit
=
el
[
'
show-word-limit
'
]
?
'
show-word-limit
'
:
''
const
readonly
=
el
.
readonly
?
'
readonly
'
:
''
const
readonly
=
el
.
readonly
?
'
readonly
'
:
''
const
prefixIcon
=
el
[
'
prefix-icon
'
]
?
`prefix-icon='
${
el
[
'
prefix-icon
'
]}
'`
:
''
const
prefixIcon
=
el
[
'
prefix-icon
'
]
?
`prefix-icon='
${
el
[
'
prefix-icon
'
]}
'`
:
''
const
suffixIcon
=
el
[
'
suffix-icon
'
]
?
`suffix-icon='
${
el
[
'
suffix-icon
'
]}
'`
:
''
const
suffixIcon
=
el
[
'
suffix-icon
'
]
?
`suffix-icon='
${
el
[
'
suffix-icon
'
]}
'`
:
''
const
showPassword
=
el
[
'
show-password
'
]
?
'
show-password
'
:
''
const
showPassword
=
el
[
'
show-password
'
]
?
'
show-password
'
:
''
const
type
=
el
.
type
?
`type="
${
el
.
type
}
"`
:
''
const
type
=
el
.
type
?
`type="
${
el
.
type
}
"`
:
''
const
autosize
=
el
.
autosize
&&
el
.
autosize
.
minRows
const
autosize
=
el
.
autosize
&&
el
.
autosize
.
minRows
?
`:autosize="{minRows:
${
el
.
autosize
.
minRows
}
, maxRows:
${
el
.
autosize
.
maxRows
}
}"`
?
`:autosize="{minRows:
${
el
.
autosize
.
minRows
}
, maxRows:
${
el
.
autosize
.
maxRows
}
}"`
:
''
:
''
let
child
=
buildElInputChild
(
el
)
let
child
=
buildElInputChild
(
el
)
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
return
`<
${
el
.
tag
}
${
vModel
}
${
type
}
${
placeholder
}
${
maxlength
}
${
showWordLimit
}
${
readonly
}
${
disabled
}
${
clearable
}
${
prefixIcon
}
${
suffixIcon
}
${
showPassword
}
${
autosize
}
${
width
}
>
${
child
}
</
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
vModel
}
${
type
}
${
placeholder
}
${
maxlength
}
${
showWordLimit
}
${
readonly
}
${
disabled
}
${
clearable
}
${
prefixIcon
}
${
suffixIcon
}
${
showPassword
}
${
autosize
}
${
width
}
>
${
child
}
</
${
el
.
tag
}
>`
},
},
'
el-input-number
'
:
el
=>
{
'
el-input-number
'
:
el
=>
{
const
{
disabled
,
vModel
,
placeholder
}
=
attrBuilder
(
el
)
const
{
disabled
,
vModel
,
placeholder
}
=
attrBuilder
(
el
)
const
controlsPosition
=
el
[
'
controls-position
'
]
?
`controls-position=
${
el
[
'
controls-position
'
]}
`
:
''
const
controlsPosition
=
el
[
'
controls-position
'
]
?
`controls-position=
${
el
[
'
controls-position
'
]}
`
:
''
const
min
=
el
.
min
?
`:min='
${
el
.
min
}
'`
:
''
const
min
=
el
.
min
?
`:min='
${
el
.
min
}
'`
:
''
const
max
=
el
.
max
?
`:max='
${
el
.
max
}
'`
:
''
const
max
=
el
.
max
?
`:max='
${
el
.
max
}
'`
:
''
const
step
=
el
.
step
?
`:step='
${
el
.
step
}
'`
:
''
const
step
=
el
.
step
?
`:step='
${
el
.
step
}
'`
:
''
const
stepStrictly
=
el
[
'
step-strictly
'
]
?
'
step-strictly
'
:
''
const
stepStrictly
=
el
[
'
step-strictly
'
]
?
'
step-strictly
'
:
''
const
precision
=
el
.
precision
?
`:precision='
${
el
.
precision
}
'`
:
''
const
precision
=
el
.
precision
?
`:precision='
${
el
.
precision
}
'`
:
''
return
`<
${
el
.
tag
}
${
vModel
}
${
placeholder
}
${
step
}
${
stepStrictly
}
${
precision
}
${
controlsPosition
}
${
min
}
${
max
}
${
disabled
}
></
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
vModel
}
${
placeholder
}
${
step
}
${
stepStrictly
}
${
precision
}
${
controlsPosition
}
${
min
}
${
max
}
${
disabled
}
></
${
el
.
tag
}
>`
},
},
'
el-select
'
:
el
=>
{
'
el-select
'
:
el
=>
{
const
{
const
{
disabled
,
vModel
,
clearable
,
placeholder
,
width
disabled
,
vModel
,
clearable
,
placeholder
,
width
}
=
attrBuilder
(
el
)
}
=
attrBuilder
(
el
)
const
filterable
=
el
.
filterable
?
'
filterable
'
:
''
const
filterable
=
el
.
filterable
?
'
filterable
'
:
''
const
multiple
=
el
.
multiple
?
'
multiple
'
:
''
const
multiple
=
el
.
multiple
?
'
multiple
'
:
''
let
child
=
buildElSelectChild
(
el
)
let
child
=
buildElSelectChild
(
el
)
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
return
`<
${
el
.
tag
}
${
vModel
}
${
placeholder
}
${
disabled
}
${
multiple
}
${
filterable
}
${
clearable
}
${
width
}
>
${
child
}
</
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
vModel
}
${
placeholder
}
${
disabled
}
${
multiple
}
${
filterable
}
${
clearable
}
${
width
}
>
${
child
}
</
${
el
.
tag
}
>`
},
},
'
el-radio-group
'
:
el
=>
{
'
el-radio-group
'
:
el
=>
{
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
size
=
`size="
${
el
.
size
}
"`
const
size
=
`size="
${
el
.
size
}
"`
let
child
=
buildElRadioGroupChild
(
el
)
let
child
=
buildElRadioGroupChild
(
el
)
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
return
`<
${
el
.
tag
}
${
vModel
}
${
size
}
${
disabled
}
>
${
child
}
</
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
vModel
}
${
size
}
${
disabled
}
>
${
child
}
</
${
el
.
tag
}
>`
},
},
'
el-checkbox-group
'
:
el
=>
{
'
el-checkbox-group
'
:
el
=>
{
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
size
=
`size="
${
el
.
size
}
"`
const
size
=
`size="
${
el
.
size
}
"`
const
min
=
el
.
min
?
`:min="
${
el
.
min
}
"`
:
''
const
min
=
el
.
min
?
`:min="
${
el
.
min
}
"`
:
''
const
max
=
el
.
max
?
`:max="
${
el
.
max
}
"`
:
''
const
max
=
el
.
max
?
`:max="
${
el
.
max
}
"`
:
''
let
child
=
buildElCheckboxGroupChild
(
el
)
let
child
=
buildElCheckboxGroupChild
(
el
)
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
return
`<
${
el
.
tag
}
${
vModel
}
${
min
}
${
max
}
${
size
}
${
disabled
}
>
${
child
}
</
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
vModel
}
${
min
}
${
max
}
${
size
}
${
disabled
}
>
${
child
}
</
${
el
.
tag
}
>`
},
},
'
el-switch
'
:
el
=>
{
'
el-switch
'
:
el
=>
{
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
activeText
=
el
[
'
active-text
'
]
?
`active-text="
${
el
[
'
active-text
'
]}
"`
:
''
const
activeText
=
el
[
'
active-text
'
]
?
`active-text="
${
el
[
'
active-text
'
]}
"`
:
''
const
inactiveText
=
el
[
'
inactive-text
'
]
?
`inactive-text="
${
el
[
'
inactive-text
'
]}
"`
:
''
const
inactiveText
=
el
[
'
inactive-text
'
]
?
`inactive-text="
${
el
[
'
inactive-text
'
]}
"`
:
''
const
activeColor
=
el
[
'
active-color
'
]
?
`active-color="
${
el
[
'
active-color
'
]}
"`
:
''
const
activeColor
=
el
[
'
active-color
'
]
?
`active-color="
${
el
[
'
active-color
'
]}
"`
:
''
const
inactiveColor
=
el
[
'
inactive-color
'
]
?
`inactive-color="
${
el
[
'
inactive-color
'
]}
"`
:
''
const
inactiveColor
=
el
[
'
inactive-color
'
]
?
`inactive-color="
${
el
[
'
inactive-color
'
]}
"`
:
''
const
activeValue
=
el
[
'
active-value
'
]
!==
true
?
`:active-value='
${
JSON
.
stringify
(
el
[
'
active-value
'
])}
'`
:
''
const
activeValue
=
el
[
'
active-value
'
]
!==
true
?
`:active-value='
${
JSON
.
stringify
(
el
[
'
active-value
'
])}
'`
:
''
const
inactiveValue
=
el
[
'
inactive-value
'
]
!==
false
?
`:inactive-value='
${
JSON
.
stringify
(
el
[
'
inactive-value
'
])}
'`
:
''
const
inactiveValue
=
el
[
'
inactive-value
'
]
!==
false
?
`:inactive-value='
${
JSON
.
stringify
(
el
[
'
inactive-value
'
])}
'`
:
''
return
`<
${
el
.
tag
}
${
vModel
}
${
activeText
}
${
inactiveText
}
${
activeColor
}
${
inactiveColor
}
${
activeValue
}
${
inactiveValue
}
${
disabled
}
></
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
vModel
}
${
activeText
}
${
inactiveText
}
${
activeColor
}
${
inactiveColor
}
${
activeValue
}
${
inactiveValue
}
${
disabled
}
></
${
el
.
tag
}
>`
},
},
'
el-cascader
'
:
el
=>
{
'
el-cascader
'
:
el
=>
{
const
{
const
{
disabled
,
vModel
,
clearable
,
placeholder
,
width
disabled
,
vModel
,
clearable
,
placeholder
,
width
}
=
attrBuilder
(
el
)
}
=
attrBuilder
(
el
)
const
options
=
el
.
options
?
`:options="
${
el
.
vModel
}
Options"`
:
''
const
options
=
el
.
options
?
`:options="
${
el
.
vModel
}
Options"`
:
''
const
props
=
el
.
props
?
`:props="
${
el
.
vModel
}
Props"`
:
''
const
props
=
el
.
props
?
`:props="
${
el
.
vModel
}
Props"`
:
''
const
showAllLevels
=
el
[
'
show-all-levels
'
]
?
''
:
'
:show-all-levels="false"
'
const
showAllLevels
=
el
[
'
show-all-levels
'
]
?
''
:
'
:show-all-levels="false"
'
const
filterable
=
el
.
filterable
?
'
filterable
'
:
''
const
filterable
=
el
.
filterable
?
'
filterable
'
:
''
const
separator
=
el
.
separator
===
'
/
'
?
''
:
`separator="
${
el
.
separator
}
"`
const
separator
=
el
.
separator
===
'
/
'
?
''
:
`separator="
${
el
.
separator
}
"`
return
`<
${
el
.
tag
}
${
vModel
}
${
options
}
${
props
}
${
width
}
${
showAllLevels
}
${
placeholder
}
${
separator
}
${
filterable
}
${
clearable
}
${
disabled
}
></
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
vModel
}
${
options
}
${
props
}
${
width
}
${
showAllLevels
}
${
placeholder
}
${
separator
}
${
filterable
}
${
clearable
}
${
disabled
}
></
${
el
.
tag
}
>`
},
},
'
el-slider
'
:
el
=>
{
'
el-slider
'
:
el
=>
{
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
min
=
el
.
min
?
`:min='
${
el
.
min
}
'`
:
''
const
min
=
el
.
min
?
`:min='
${
el
.
min
}
'`
:
''
const
max
=
el
.
max
?
`:max='
${
el
.
max
}
'`
:
''
const
max
=
el
.
max
?
`:max='
${
el
.
max
}
'`
:
''
const
step
=
el
.
step
?
`:step='
${
el
.
step
}
'`
:
''
const
step
=
el
.
step
?
`:step='
${
el
.
step
}
'`
:
''
const
range
=
el
.
range
?
'
range
'
:
''
const
range
=
el
.
range
?
'
range
'
:
''
const
showStops
=
el
[
'
show-stops
'
]
?
`:show-stops="
${
el
[
'
show-stops
'
]}
"`
:
''
const
showStops
=
el
[
'
show-stops
'
]
?
`:show-stops="
${
el
[
'
show-stops
'
]}
"`
:
''
return
`<
${
el
.
tag
}
${
min
}
${
max
}
${
step
}
${
vModel
}
${
range
}
${
showStops
}
${
disabled
}
></
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
min
}
${
max
}
${
step
}
${
vModel
}
${
range
}
${
showStops
}
${
disabled
}
></
${
el
.
tag
}
>`
},
},
'
el-time-picker
'
:
el
=>
{
'
el-time-picker
'
:
el
=>
{
const
{
const
{
disabled
,
vModel
,
clearable
,
placeholder
,
width
disabled
,
vModel
,
clearable
,
placeholder
,
width
}
=
attrBuilder
(
el
)
}
=
attrBuilder
(
el
)
const
startPlaceholder
=
el
[
'
start-placeholder
'
]
?
`start-placeholder="
${
el
[
'
start-placeholder
'
]}
"`
:
''
const
startPlaceholder
=
el
[
'
start-placeholder
'
]
?
`start-placeholder="
${
el
[
'
start-placeholder
'
]}
"`
:
''
const
endPlaceholder
=
el
[
'
end-placeholder
'
]
?
`end-placeholder="
${
el
[
'
end-placeholder
'
]}
"`
:
''
const
endPlaceholder
=
el
[
'
end-placeholder
'
]
?
`end-placeholder="
${
el
[
'
end-placeholder
'
]}
"`
:
''
const
rangeSeparator
=
el
[
'
range-separator
'
]
?
`range-separator="
${
el
[
'
range-separator
'
]}
"`
:
''
const
rangeSeparator
=
el
[
'
range-separator
'
]
?
`range-separator="
${
el
[
'
range-separator
'
]}
"`
:
''
const
isRange
=
el
[
'
is-range
'
]
?
'
is-range
'
:
''
const
isRange
=
el
[
'
is-range
'
]
?
'
is-range
'
:
''
const
format
=
el
.
format
?
`format="
${
el
.
format
}
"`
:
''
const
format
=
el
.
format
?
`format="
${
el
.
format
}
"`
:
''
const
valueFormat
=
el
[
'
value-format
'
]
?
`value-format="
${
el
[
'
value-format
'
]}
"`
:
''
const
valueFormat
=
el
[
'
value-format
'
]
?
`value-format="
${
el
[
'
value-format
'
]}
"`
:
''
const
pickerOptions
=
el
[
'
picker-options
'
]
?
`:picker-options='
${
JSON
.
stringify
(
el
[
'
picker-options
'
])}
'`
:
''
const
pickerOptions
=
el
[
'
picker-options
'
]
?
`:picker-options='
${
JSON
.
stringify
(
el
[
'
picker-options
'
])}
'`
:
''
return
`<
${
el
.
tag
}
${
vModel
}
${
isRange
}
${
format
}
${
valueFormat
}
${
pickerOptions
}
${
width
}
${
placeholder
}
${
startPlaceholder
}
${
endPlaceholder
}
${
rangeSeparator
}
${
clearable
}
${
disabled
}
></
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
vModel
}
${
isRange
}
${
format
}
${
valueFormat
}
${
pickerOptions
}
${
width
}
${
placeholder
}
${
startPlaceholder
}
${
endPlaceholder
}
${
rangeSeparator
}
${
clearable
}
${
disabled
}
></
${
el
.
tag
}
>`
},
},
'
el-date-picker
'
:
el
=>
{
'
el-date-picker
'
:
el
=>
{
const
{
const
{
disabled
,
vModel
,
clearable
,
placeholder
,
width
disabled
,
vModel
,
clearable
,
placeholder
,
width
}
=
attrBuilder
(
el
)
}
=
attrBuilder
(
el
)
const
startPlaceholder
=
el
[
'
start-placeholder
'
]
?
`start-placeholder="
${
el
[
'
start-placeholder
'
]}
"`
:
''
const
startPlaceholder
=
el
[
'
start-placeholder
'
]
?
`start-placeholder="
${
el
[
'
start-placeholder
'
]}
"`
:
''
const
endPlaceholder
=
el
[
'
end-placeholder
'
]
?
`end-placeholder="
${
el
[
'
end-placeholder
'
]}
"`
:
''
const
endPlaceholder
=
el
[
'
end-placeholder
'
]
?
`end-placeholder="
${
el
[
'
end-placeholder
'
]}
"`
:
''
const
rangeSeparator
=
el
[
'
range-separator
'
]
?
`range-separator="
${
el
[
'
range-separator
'
]}
"`
:
''
const
rangeSeparator
=
el
[
'
range-separator
'
]
?
`range-separator="
${
el
[
'
range-separator
'
]}
"`
:
''
const
format
=
el
.
format
?
`format="
${
el
.
format
}
"`
:
''
const
format
=
el
.
format
?
`format="
${
el
.
format
}
"`
:
''
const
valueFormat
=
el
[
'
value-format
'
]
?
`value-format="
${
el
[
'
value-format
'
]}
"`
:
''
const
valueFormat
=
el
[
'
value-format
'
]
?
`value-format="
${
el
[
'
value-format
'
]}
"`
:
''
const
type
=
el
.
type
===
'
date
'
?
''
:
`type="
${
el
.
type
}
"`
const
type
=
el
.
type
===
'
date
'
?
''
:
`type="
${
el
.
type
}
"`
const
readonly
=
el
.
readonly
?
'
readonly
'
:
''
const
readonly
=
el
.
readonly
?
'
readonly
'
:
''
return
`<
${
el
.
tag
}
${
type
}
${
vModel
}
${
format
}
${
valueFormat
}
${
width
}
${
placeholder
}
${
startPlaceholder
}
${
endPlaceholder
}
${
rangeSeparator
}
${
clearable
}
${
readonly
}
${
disabled
}
></
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
type
}
${
vModel
}
${
format
}
${
valueFormat
}
${
width
}
${
placeholder
}
${
startPlaceholder
}
${
endPlaceholder
}
${
rangeSeparator
}
${
clearable
}
${
readonly
}
${
disabled
}
></
${
el
.
tag
}
>`
},
},
'
el-rate
'
:
el
=>
{
'
el-rate
'
:
el
=>
{
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
max
=
el
.
max
?
`:max='
${
el
.
max
}
'`
:
''
const
max
=
el
.
max
?
`:max='
${
el
.
max
}
'`
:
''
const
allowHalf
=
el
[
'
allow-half
'
]
?
'
allow-half
'
:
''
const
allowHalf
=
el
[
'
allow-half
'
]
?
'
allow-half
'
:
''
const
showText
=
el
[
'
show-text
'
]
?
'
show-text
'
:
''
const
showText
=
el
[
'
show-text
'
]
?
'
show-text
'
:
''
const
showScore
=
el
[
'
show-score
'
]
?
'
show-score
'
:
''
const
showScore
=
el
[
'
show-score
'
]
?
'
show-score
'
:
''
return
`<
${
el
.
tag
}
${
vModel
}
${
allowHalf
}
${
showText
}
${
showScore
}
${
disabled
}
></
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
vModel
}
${
allowHalf
}
${
showText
}
${
showScore
}
${
disabled
}
></
${
el
.
tag
}
>`
},
},
'
el-color-picker
'
:
el
=>
{
'
el-color-picker
'
:
el
=>
{
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
{
disabled
,
vModel
}
=
attrBuilder
(
el
)
const
size
=
`size="
${
el
.
size
}
"`
const
size
=
`size="
${
el
.
size
}
"`
const
showAlpha
=
el
[
'
show-alpha
'
]
?
'
show-alpha
'
:
''
const
showAlpha
=
el
[
'
show-alpha
'
]
?
'
show-alpha
'
:
''
const
colorFormat
=
el
[
'
color-format
'
]
?
`color-format="
${
el
[
'
color-format
'
]}
"`
:
''
const
colorFormat
=
el
[
'
color-format
'
]
?
`color-format="
${
el
[
'
color-format
'
]}
"`
:
''
return
`<
${
el
.
tag
}
${
vModel
}
${
size
}
${
showAlpha
}
${
colorFormat
}
${
disabled
}
></
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
vModel
}
${
size
}
${
showAlpha
}
${
colorFormat
}
${
disabled
}
></
${
el
.
tag
}
>`
},
},
'
el-upload
'
:
el
=>
{
'
el-upload
'
:
el
=>
{
const
disabled
=
el
.
disabled
?
'
:disabled=
\'
true
\'
'
:
''
const
disabled
=
el
.
disabled
?
'
:disabled=
\'
true
\'
'
:
''
const
action
=
el
.
action
?
`:action="
${
el
.
vModel
}
Action"`
:
''
const
action
=
el
.
action
?
`:action="
${
el
.
vModel
}
Action"`
:
''
const
multiple
=
el
.
multiple
?
'
multiple
'
:
''
const
multiple
=
el
.
multiple
?
'
multiple
'
:
''
const
listType
=
el
[
'
list-type
'
]
!==
'
text
'
?
`list-type="
${
el
[
'
list-type
'
]}
"`
:
''
const
listType
=
el
[
'
list-type
'
]
!==
'
text
'
?
`list-type="
${
el
[
'
list-type
'
]}
"`
:
''
const
accept
=
el
.
accept
?
`accept="
${
el
.
accept
}
"`
:
''
const
accept
=
el
.
accept
?
`accept="
${
el
.
accept
}
"`
:
''
const
name
=
el
.
name
!==
'
file
'
?
`name="
${
el
.
name
}
"`
:
''
const
name
=
el
.
name
!==
'
file
'
?
`name="
${
el
.
name
}
"`
:
''
const
autoUpload
=
el
[
'
auto-upload
'
]
===
false
?
'
:auto-upload="false"
'
:
''
const
autoUpload
=
el
[
'
auto-upload
'
]
===
false
?
'
:auto-upload="false"
'
:
''
const
beforeUpload
=
`:before-upload="
${
el
.
vModel
}
BeforeUpload"`
const
beforeUpload
=
`:before-upload="
${
el
.
vModel
}
BeforeUpload"`
const
fileList
=
`:file-list="
${
el
.
vModel
}
fileList"`
const
fileList
=
`:file-list="
${
el
.
vModel
}
fileList"`
const
ref
=
`ref="
${
el
.
vModel
}
"`
const
ref
=
`ref="
${
el
.
vModel
}
"`
let
child
=
buildElUploadChild
(
el
)
let
child
=
buildElUploadChild
(
el
)
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
if
(
child
)
child
=
`\n
${
child
}
\n`
// 换行
return
`<
${
el
.
tag
}
${
ref
}
${
fileList
}
${
action
}
${
autoUpload
}
${
multiple
}
${
beforeUpload
}
${
listType
}
${
accept
}
${
name
}
${
disabled
}
>
${
child
}
</
${
el
.
tag
}
>`
return
`<
${
el
.
tag
}
${
ref
}
${
fileList
}
${
action
}
${
autoUpload
}
${
multiple
}
${
beforeUpload
}
${
listType
}
${
accept
}
${
name
}
${
disabled
}
>
${
child
}
</
${
el
.
tag
}
>`
}
}
}
}
function
attrBuilder
(
el
)
{
function
attrBuilder
(
el
)
{
return
{
return
{
vModel
:
`v-model="
${
confGlobal
.
formModel
}
.
${
el
.
vModel
}
"`
,
vModel
:
`v-model="
${
confGlobal
.
formModel
}
.
${
el
.
vModel
}
"`
,
clearable
:
el
.
clearable
?
'
clearable
'
:
''
,
clearable
:
el
.
clearable
?
'
clearable
'
:
''
,
placeholder
:
el
.
placeholder
?
`placeholder="
${
el
.
placeholder
}
"`
:
''
,
placeholder
:
el
.
placeholder
?
`placeholder="
${
el
.
placeholder
}
"`
:
''
,
width
:
el
.
style
&&
el
.
style
.
width
?
'
:style="{width:
\'
100%
\'
}"
'
:
''
,
width
:
el
.
style
&&
el
.
style
.
width
?
'
:style="{width:
\'
100%
\'
}"
'
:
''
,
disabled
:
el
.
disabled
?
'
:disabled=
\'
true
\'
'
:
''
disabled
:
el
.
disabled
?
'
:disabled=
\'
true
\'
'
:
''
}
}
}
}
// el-buttin 子级
// el-buttin 子级
function
buildElButtonChild
(
conf
)
{
function
buildElButtonChild
(
conf
)
{
const
children
=
[]
const
children
=
[]
if
(
conf
.
default
)
{
if
(
conf
.
default
)
{
children
.
push
(
conf
.
default
)
children
.
push
(
conf
.
default
)
}
}
return
children
.
join
(
'
\n
'
)
return
children
.
join
(
'
\n
'
)
}
}
// el-input innerHTML
// el-input innerHTML
function
buildElInputChild
(
conf
)
{
function
buildElInputChild
(
conf
)
{
const
children
=
[]
const
children
=
[]
if
(
conf
.
prepend
)
{
if
(
conf
.
prepend
)
{
children
.
push
(
`<template slot="prepend">
${
conf
.
prepend
}
</template>`
)
children
.
push
(
`<template slot="prepend">
${
conf
.
prepend
}
</template>`
)
}
}
if
(
conf
.
append
)
{
if
(
conf
.
append
)
{
children
.
push
(
`<template slot="append">
${
conf
.
append
}
</template>`
)
children
.
push
(
`<template slot="append">
${
conf
.
append
}
</template>`
)
}
}
return
children
.
join
(
'
\n
'
)
return
children
.
join
(
'
\n
'
)
}
}
function
buildElSelectChild
(
conf
)
{
function
buildElSelectChild
(
conf
)
{
const
children
=
[]
const
children
=
[]
if
(
conf
.
options
&&
conf
.
options
.
length
)
{
if
(
conf
.
options
&&
conf
.
options
.
length
)
{
children
.
push
(
`<el-option v-for="(item, index) in
${
conf
.
vModel
}
Options" :key="index" :label="item.label" :value="item.value" :disabled="item.disabled"></el-option>`
)
children
.
push
(
`<el-option v-for="(item, index) in
${
conf
.
vModel
}
Options" :key="index" :label="item.label" :value="item.value" :disabled="item.disabled"></el-option>`
)
}
}
return
children
.
join
(
'
\n
'
)
return
children
.
join
(
'
\n
'
)
}
}
function
buildElRadioGroupChild
(
conf
)
{
function
buildElRadioGroupChild
(
conf
)
{
const
children
=
[]
const
children
=
[]
if
(
conf
.
options
&&
conf
.
options
.
length
)
{
if
(
conf
.
options
&&
conf
.
options
.
length
)
{
const
tag
=
conf
.
optionType
===
'
button
'
?
'
el-radio-button
'
:
'
el-radio
'
const
tag
=
conf
.
optionType
===
'
button
'
?
'
el-radio-button
'
:
'
el-radio
'
const
border
=
conf
.
border
?
'
border
'
:
''
const
border
=
conf
.
border
?
'
border
'
:
''
children
.
push
(
`<
${
tag
}
v-for="(item, index) in
${
conf
.
vModel
}
Options" :key="index" :label="item.value" :disabled="item.disabled"
${
border
}
>{{item.label}}</
${
tag
}
>`
)
children
.
push
(
`<
${
tag
}
v-for="(item, index) in
${
conf
.
vModel
}
Options" :key="index" :label="item.value" :disabled="item.disabled"
${
border
}
>{{item.label}}</
${
tag
}
>`
)
}
}
return
children
.
join
(
'
\n
'
)
return
children
.
join
(
'
\n
'
)
}
}
function
buildElCheckboxGroupChild
(
conf
)
{
function
buildElCheckboxGroupChild
(
conf
)
{
const
children
=
[]
const
children
=
[]
if
(
conf
.
options
&&
conf
.
options
.
length
)
{
if
(
conf
.
options
&&
conf
.
options
.
length
)
{
const
tag
=
conf
.
optionType
===
'
button
'
?
'
el-checkbox-button
'
:
'
el-checkbox
'
const
tag
=
conf
.
optionType
===
'
button
'
?
'
el-checkbox-button
'
:
'
el-checkbox
'
const
border
=
conf
.
border
?
'
border
'
:
''
const
border
=
conf
.
border
?
'
border
'
:
''
children
.
push
(
`<
${
tag
}
v-for="(item, index) in
${
conf
.
vModel
}
Options" :key="index" :label="item.value" :disabled="item.disabled"
${
border
}
>{{item.label}}</
${
tag
}
>`
)
children
.
push
(
`<
${
tag
}
v-for="(item, index) in
${
conf
.
vModel
}
Options" :key="index" :label="item.value" :disabled="item.disabled"
${
border
}
>{{item.label}}</
${
tag
}
>`
)
}
}
return
children
.
join
(
'
\n
'
)
return
children
.
join
(
'
\n
'
)
}
}
function
buildElUploadChild
(
conf
)
{
function
buildElUploadChild
(
conf
)
{
const
list
=
[]
const
list
=
[]
if
(
conf
[
'
list-type
'
]
===
'
picture-card
'
)
list
.
push
(
'
<i class="el-icon-plus"></i>
'
)
if
(
conf
[
'
list-type
'
]
===
'
picture-card
'
)
list
.
push
(
'
<i class="el-icon-plus"></i>
'
)
else
list
.
push
(
`<el-button size="small" type="primary" icon="el-icon-upload">
${
conf
.
buttonText
}
</el-button>`
)
else
list
.
push
(
`<el-button size="small" type="primary" icon="el-icon-upload">
${
conf
.
buttonText
}
</el-button>`
)
if
(
conf
.
showTip
)
list
.
push
(
`<div slot="tip" class="el-upload__tip">只能上传不超过
${
conf
.
fileSize
}${
conf
.
sizeUnit
}
的
${
conf
.
accept
}
文件</div>`
)
if
(
conf
.
showTip
)
list
.
push
(
`<div slot="tip" class="el-upload__tip">只能上传不超过
${
conf
.
fileSize
}${
conf
.
sizeUnit
}
的
${
conf
.
accept
}
文件</div>`
)
return
list
.
join
(
'
\n
'
)
return
list
.
join
(
'
\n
'
)
}
}
export
function
makeUpHtml
(
conf
,
type
)
{
export
function
makeUpHtml
(
conf
,
type
)
{
const
htmlList
=
[]
const
htmlList
=
[]
confGlobal
=
conf
confGlobal
=
conf
someSpanIsNot24
=
conf
.
fields
.
some
(
item
=>
item
.
span
!==
24
)
someSpanIsNot24
=
conf
.
fields
.
some
(
item
=>
item
.
span
!==
24
)
conf
.
fields
.
forEach
(
el
=>
{
conf
.
fields
.
forEach
(
el
=>
{
htmlList
.
push
(
layouts
[
el
.
layout
](
el
))
htmlList
.
push
(
layouts
[
el
.
layout
](
el
))
})
})
const
htmlStr
=
htmlList
.
join
(
'
\n
'
)
const
htmlStr
=
htmlList
.
join
(
'
\n
'
)
let
temp
=
buildFormTemplate
(
conf
,
htmlStr
,
type
)
let
temp
=
buildFormTemplate
(
conf
,
htmlStr
,
type
)
if
(
type
===
'
dialog
'
)
{
if
(
type
===
'
dialog
'
)
{
temp
=
dialogWrapper
(
temp
)
temp
=
dialogWrapper
(
temp
)
}
}
confGlobal
=
null
confGlobal
=
null
return
temp
return
temp
}
}
ruoyi-ui/src/utils/generator/js.js
View file @
d00dc3b0
import
{
isArray
}
from
'
util
'
import
{
isArray
}
from
'
util
'
import
{
exportDefault
,
titleCase
}
from
'
@/utils/index
'
import
{
exportDefault
,
titleCase
}
from
'
@/utils/index
'
import
{
trigger
}
from
'
./config
'
import
{
trigger
}
from
'
./config
'
const
units
=
{
const
units
=
{
KB
:
'
1024
'
,
KB
:
'
1024
'
,
MB
:
'
1024 / 1024
'
,
MB
:
'
1024 / 1024
'
,
GB
:
'
1024 / 1024 / 1024
'
GB
:
'
1024 / 1024 / 1024
'
}
}
let
confGlobal
let
confGlobal
const
inheritAttrs
=
{
const
inheritAttrs
=
{
file
:
''
,
file
:
''
,
dialog
:
'
inheritAttrs: false,
'
dialog
:
'
inheritAttrs: false,
'
}
}
export
function
makeUpJs
(
conf
,
type
)
{
export
function
makeUpJs
(
conf
,
type
)
{
confGlobal
=
conf
=
JSON
.
parse
(
JSON
.
stringify
(
conf
))
confGlobal
=
conf
=
JSON
.
parse
(
JSON
.
stringify
(
conf
))
const
dataList
=
[]
const
dataList
=
[]
const
ruleList
=
[]
const
ruleList
=
[]
const
optionsList
=
[]
const
optionsList
=
[]
const
propsList
=
[]
const
propsList
=
[]
const
methodList
=
mixinMethod
(
type
)
const
methodList
=
mixinMethod
(
type
)
const
uploadVarList
=
[]
const
uploadVarList
=
[]
conf
.
fields
.
forEach
(
el
=>
{
conf
.
fields
.
forEach
(
el
=>
{
buildAttributes
(
el
,
dataList
,
ruleList
,
optionsList
,
methodList
,
propsList
,
uploadVarList
)
buildAttributes
(
el
,
dataList
,
ruleList
,
optionsList
,
methodList
,
propsList
,
uploadVarList
)
})
})
const
script
=
buildexport
(
const
script
=
buildexport
(
conf
,
conf
,
type
,
type
,
dataList
.
join
(
'
\n
'
),
dataList
.
join
(
'
\n
'
),
ruleList
.
join
(
'
\n
'
),
ruleList
.
join
(
'
\n
'
),
optionsList
.
join
(
'
\n
'
),
optionsList
.
join
(
'
\n
'
),
uploadVarList
.
join
(
'
\n
'
),
uploadVarList
.
join
(
'
\n
'
),
propsList
.
join
(
'
\n
'
),
propsList
.
join
(
'
\n
'
),
methodList
.
join
(
'
\n
'
)
methodList
.
join
(
'
\n
'
)
)
)
confGlobal
=
null
confGlobal
=
null
return
script
return
script
}
}
function
buildAttributes
(
el
,
dataList
,
ruleList
,
optionsList
,
methodList
,
propsList
,
uploadVarList
)
{
function
buildAttributes
(
el
,
dataList
,
ruleList
,
optionsList
,
methodList
,
propsList
,
uploadVarList
)
{
buildData
(
el
,
dataList
)
buildData
(
el
,
dataList
)
buildRules
(
el
,
ruleList
)
buildRules
(
el
,
ruleList
)
if
(
el
.
options
&&
el
.
options
.
length
)
{
if
(
el
.
options
&&
el
.
options
.
length
)
{
buildOptions
(
el
,
optionsList
)
buildOptions
(
el
,
optionsList
)
if
(
el
.
dataType
===
'
dynamic
'
)
{
if
(
el
.
dataType
===
'
dynamic
'
)
{
const
model
=
`
${
el
.
vModel
}
Options`
const
model
=
`
${
el
.
vModel
}
Options`
const
options
=
titleCase
(
model
)
const
options
=
titleCase
(
model
)
buildOptionMethod
(
`get
${
options
}
`
,
model
,
methodList
)
buildOptionMethod
(
`get
${
options
}
`
,
model
,
methodList
)
}
}
}
}
if
(
el
.
props
&&
el
.
props
.
props
)
{
if
(
el
.
props
&&
el
.
props
.
props
)
{
buildProps
(
el
,
propsList
)
buildProps
(
el
,
propsList
)
}
}
if
(
el
.
action
&&
el
.
tag
===
'
el-upload
'
)
{
if
(
el
.
action
&&
el
.
tag
===
'
el-upload
'
)
{
uploadVarList
.
push
(
uploadVarList
.
push
(
`
${
el
.
vModel
}
Action: '
${
el
.
action
}
',
`
${
el
.
vModel
}
Action: '
${
el
.
action
}
',
${
el
.
vModel
}
fileList: [],`
${
el
.
vModel
}
fileList: [],`
)
)
methodList
.
push
(
buildBeforeUpload
(
el
))
methodList
.
push
(
buildBeforeUpload
(
el
))
if
(
!
el
[
'
auto-upload
'
])
{
if
(
!
el
[
'
auto-upload
'
])
{
methodList
.
push
(
buildSubmitUpload
(
el
))
methodList
.
push
(
buildSubmitUpload
(
el
))
}
}
}
}
if
(
el
.
children
)
{
if
(
el
.
children
)
{
el
.
children
.
forEach
(
el2
=>
{
el
.
children
.
forEach
(
el2
=>
{
buildAttributes
(
el2
,
dataList
,
ruleList
,
optionsList
,
methodList
,
propsList
,
uploadVarList
)
buildAttributes
(
el2
,
dataList
,
ruleList
,
optionsList
,
methodList
,
propsList
,
uploadVarList
)
})
})
}
}
}
}
function
mixinMethod
(
type
)
{
function
mixinMethod
(
type
)
{
const
list
=
[];
const
const
list
=
[];
const
minxins
=
{
minxins
=
{
file
:
confGlobal
.
formBtns
?
{
file
:
confGlobal
.
formBtns
?
{
submitForm
:
`submitForm() {
submitForm
:
`submitForm() {
this.$refs['
${
confGlobal
.
formRef
}
'].validate(valid => {
this.$refs['
${
confGlobal
.
formRef
}
'].validate(valid => {
if(!valid) return
if(!valid) return
// TODO 提交表单
// TODO 提交表单
})
})
},`
,
},`
,
resetForm
:
`resetForm() {
resetForm
:
`resetForm() {
this.$refs['
${
confGlobal
.
formRef
}
'].resetFields()
this.$refs['
${
confGlobal
.
formRef
}
'].resetFields()
},`
},`
}
:
null
,
}
:
null
,
dialog
:
{
dialog
:
{
onOpen
:
'
onOpen() {},
'
,
onOpen
:
'
onOpen() {},
'
,
onClose
:
`onClose() {
onClose
:
`onClose() {
this.$refs['
${
confGlobal
.
formRef
}
'].resetFields()
this.$refs['
${
confGlobal
.
formRef
}
'].resetFields()
},`
,
},`
,
close
:
`close() {
close
:
`close() {
this.$emit('update:visible', false)
this.$emit('update:visible', false)
},`
,
},`
,
hand
e
lConfirm
:
`hand
e
lConfirm() {
handl
e
Confirm
:
`handl
e
Confirm() {
this.$refs['
${
confGlobal
.
formRef
}
'].validate(valid => {
this.$refs['
${
confGlobal
.
formRef
}
'].validate(valid => {
if(!valid) return
if(!valid) return
this.close()
this.close()
})
})
},`
},`
}
}
}
}
const
methods
=
minxins
[
type
]
const
methods
=
minxins
[
type
]
if
(
methods
)
{
if
(
methods
)
{
Object
.
keys
(
methods
).
forEach
(
key
=>
{
Object
.
keys
(
methods
).
forEach
(
key
=>
{
list
.
push
(
methods
[
key
])
list
.
push
(
methods
[
key
])
})
})
}
}
return
list
return
list
}
}
function
buildData
(
conf
,
dataList
)
{
function
buildData
(
conf
,
dataList
)
{
if
(
conf
.
vModel
===
undefined
)
return
if
(
conf
.
vModel
===
undefined
)
return
let
defaultValue
let
defaultValue
if
(
typeof
(
conf
.
defaultValue
)
===
'
string
'
&&
!
conf
.
multiple
)
{
if
(
typeof
(
conf
.
defaultValue
)
===
'
string
'
&&
!
conf
.
multiple
)
{
defaultValue
=
`'
${
conf
.
defaultValue
}
'`
defaultValue
=
`'
${
conf
.
defaultValue
}
'`
}
else
{
}
else
{
defaultValue
=
`
${
JSON
.
stringify
(
conf
.
defaultValue
)}
`
defaultValue
=
`
${
JSON
.
stringify
(
conf
.
defaultValue
)}
`
}
}
dataList
.
push
(
`
${
conf
.
vModel
}
:
${
defaultValue
}
,`
)
dataList
.
push
(
`
${
conf
.
vModel
}
:
${
defaultValue
}
,`
)
}
}
function
buildRules
(
conf
,
ruleList
)
{
function
buildRules
(
conf
,
ruleList
)
{
if
(
conf
.
vModel
===
undefined
)
return
if
(
conf
.
vModel
===
undefined
)
return
const
rules
=
[]
const
rules
=
[]
if
(
trigger
[
conf
.
tag
])
{
if
(
trigger
[
conf
.
tag
])
{
if
(
conf
.
required
)
{
if
(
conf
.
required
)
{
const
type
=
isArray
(
conf
.
defaultValue
)
?
'
type:
\'
array
\'
,
'
:
''
const
type
=
isArray
(
conf
.
defaultValue
)
?
'
type:
\'
array
\'
,
'
:
''
let
message
=
isArray
(
conf
.
defaultValue
)
?
`请至少选择一个
${
conf
.
vModel
}
`
:
conf
.
placeholder
let
message
=
isArray
(
conf
.
defaultValue
)
?
`请至少选择一个
${
conf
.
vModel
}
`
:
conf
.
placeholder
if
(
message
===
undefined
)
message
=
`
${
conf
.
label
}
不能为空`
if
(
message
===
undefined
)
message
=
`
${
conf
.
label
}
不能为空`
rules
.
push
(
`{ required: true,
${
type
}
message: '
${
message
}
', trigger: '
${
trigger
[
conf
.
tag
]}
' }`
)
rules
.
push
(
`{ required: true,
${
type
}
message: '
${
message
}
', trigger: '
${
trigger
[
conf
.
tag
]}
' }`
)
}
}
if
(
conf
.
regList
&&
isArray
(
conf
.
regList
))
{
if
(
conf
.
regList
&&
isArray
(
conf
.
regList
))
{
conf
.
regList
.
forEach
(
item
=>
{
conf
.
regList
.
forEach
(
item
=>
{
if
(
item
.
pattern
)
{
if
(
item
.
pattern
)
{
rules
.
push
(
`{ pattern:
${
eval
(
item
.
pattern
)}
, message: '
${
item
.
message
}
', trigger: '
${
trigger
[
conf
.
tag
]}
' }`
)
rules
.
push
(
`{ pattern:
${
eval
(
item
.
pattern
)}
, message: '
${
item
.
message
}
', trigger: '
${
trigger
[
conf
.
tag
]}
' }`
)
}
}
})
})
}
}
ruleList
.
push
(
`
${
conf
.
vModel
}
: [
${
rules
.
join
(
'
,
'
)}
],`
)
ruleList
.
push
(
`
${
conf
.
vModel
}
: [
${
rules
.
join
(
'
,
'
)}
],`
)
}
}
}
}
function
buildOptions
(
conf
,
optionsList
)
{
function
buildOptions
(
conf
,
optionsList
)
{
if
(
conf
.
vModel
===
undefined
)
return
if
(
conf
.
vModel
===
undefined
)
return
if
(
conf
.
dataType
===
'
dynamic
'
)
{
conf
.
options
=
[]
}
if
(
conf
.
dataType
===
'
dynamic
'
)
{
conf
.
options
=
[]
}
const
str
=
`
${
conf
.
vModel
}
Options:
${
JSON
.
stringify
(
conf
.
options
)}
,`
const
str
=
`
${
conf
.
vModel
}
Options:
${
JSON
.
stringify
(
conf
.
options
)}
,`
optionsList
.
push
(
str
)
optionsList
.
push
(
str
)
}
}
function
buildProps
(
conf
,
propsList
)
{
function
buildProps
(
conf
,
propsList
)
{
if
(
conf
.
dataType
===
'
dynamic
'
)
{
if
(
conf
.
dataType
===
'
dynamic
'
)
{
conf
.
valueKey
!==
'
value
'
&&
(
conf
.
props
.
props
.
value
=
conf
.
valueKey
)
conf
.
valueKey
!==
'
value
'
&&
(
conf
.
props
.
props
.
value
=
conf
.
valueKey
)
conf
.
labelKey
!==
'
label
'
&&
(
conf
.
props
.
props
.
label
=
conf
.
labelKey
)
conf
.
labelKey
!==
'
label
'
&&
(
conf
.
props
.
props
.
label
=
conf
.
labelKey
)
conf
.
childrenKey
!==
'
children
'
&&
(
conf
.
props
.
props
.
children
=
conf
.
childrenKey
)
conf
.
childrenKey
!==
'
children
'
&&
(
conf
.
props
.
props
.
children
=
conf
.
childrenKey
)
}
}
const
str
=
`
${
conf
.
vModel
}
Props:
${
JSON
.
stringify
(
conf
.
props
.
props
)}
,`
const
str
=
`
${
conf
.
vModel
}
Props:
${
JSON
.
stringify
(
conf
.
props
.
props
)}
,`
propsList
.
push
(
str
)
propsList
.
push
(
str
)
}
}
function
buildBeforeUpload
(
conf
)
{
function
buildBeforeUpload
(
conf
)
{
const
unitNum
=
units
[
conf
.
sizeUnit
];
let
rightSizeCode
=
''
;
let
acceptCode
=
''
;
const
const
unitNum
=
units
[
conf
.
sizeUnit
];
let
rightSizeCode
=
''
;
let
acceptCode
=
''
;
const
returnList
=
[]
returnList
=
[]
if
(
conf
.
fileSize
)
{
if
(
conf
.
fileSize
)
{
rightSizeCode
=
`let isRightSize = file.size /
${
unitNum
}
<
${
conf
.
fileSize
}
rightSizeCode
=
`let isRightSize = file.size /
${
unitNum
}
<
${
conf
.
fileSize
}
if(!isRightSize){
if(!isRightSize){
this.$message.error('文件大小超过
${
conf
.
fileSize
}${
conf
.
sizeUnit
}
')
this.$message.error('文件大小超过
${
conf
.
fileSize
}${
conf
.
sizeUnit
}
')
}`
}`
returnList
.
push
(
'
isRightSize
'
)
returnList
.
push
(
'
isRightSize
'
)
}
}
if
(
conf
.
accept
)
{
if
(
conf
.
accept
)
{
acceptCode
=
`let isAccept = new RegExp('
${
conf
.
accept
}
').test(file.type)
acceptCode
=
`let isAccept = new RegExp('
${
conf
.
accept
}
').test(file.type)
if(!isAccept){
if(!isAccept){
this.$message.error('应该选择
${
conf
.
accept
}
类型的文件')
this.$message.error('应该选择
${
conf
.
accept
}
类型的文件')
}`
}`
returnList
.
push
(
'
isAccept
'
)
returnList
.
push
(
'
isAccept
'
)
}
}
const
str
=
`
${
conf
.
vModel
}
BeforeUpload(file) {
const
str
=
`
${
conf
.
vModel
}
BeforeUpload(file) {
${
rightSizeCode
}
${
rightSizeCode
}
${
acceptCode
}
${
acceptCode
}
return
${
returnList
.
join
(
'
&&
'
)}
return
${
returnList
.
join
(
'
&&
'
)}
},`
},`
return
returnList
.
length
?
str
:
''
return
returnList
.
length
?
str
:
''
}
}
function
buildSubmitUpload
(
conf
)
{
function
buildSubmitUpload
(
conf
)
{
const
str
=
`submitUpload() {
const
str
=
`submitUpload() {
this.$refs['
${
conf
.
vModel
}
'].submit()
this.$refs['
${
conf
.
vModel
}
'].submit()
},`
},`
return
str
return
str
}
}
function
buildOptionMethod
(
methodName
,
model
,
methodList
)
{
function
buildOptionMethod
(
methodName
,
model
,
methodList
)
{
const
str
=
`
${
methodName
}
() {
const
str
=
`
${
methodName
}
() {
// TODO 发起请求获取数据
// TODO 发起请求获取数据
this.
${
model
}
this.
${
model
}
},`
},`
methodList
.
push
(
str
)
methodList
.
push
(
str
)
}
}
function
buildexport
(
conf
,
type
,
data
,
rules
,
selectOptions
,
uploadVar
,
props
,
methods
)
{
function
buildexport
(
conf
,
type
,
data
,
rules
,
selectOptions
,
uploadVar
,
props
,
methods
)
{
const
str
=
`
${
exportDefault
}
{
const
str
=
`
${
exportDefault
}
{
${
inheritAttrs
[
type
]}
${
inheritAttrs
[
type
]}
components: {},
components: {},
props: [],
props: [],
data () {
data () {
return {
return {
${
conf
.
formModel
}
: {
${
conf
.
formModel
}
: {
${
data
}
${
data
}
},
},
${
conf
.
formRules
}
: {
${
conf
.
formRules
}
: {
${
rules
}
${
rules
}
},
},
${
uploadVar
}
${
uploadVar
}
${
selectOptions
}
${
selectOptions
}
${
props
}
${
props
}
}
}
},
},
computed: {},
computed: {},
watch: {},
watch: {},
created () {},
created () {},
mounted () {},
mounted () {},
methods: {
methods: {
${
methods
}
${
methods
}
}
}
}`
}`
return
str
return
str
}
}
ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue
View file @
d00dc3b0
<
template
>
<
template
>
<div>
<div>
<el-dialog
<el-dialog
v-bind=
"$attrs"
v-bind=
"$attrs"
width=
"500px"
width=
"500px"
:close-on-click-modal=
"false"
:close-on-click-modal=
"false"
:modal-append-to-body=
"false"
:modal-append-to-body=
"false"
v-on=
"$listeners"
v-on=
"$listeners"
@
open=
"onOpen"
@
open=
"onOpen"
@
close=
"onClose"
@
close=
"onClose"
>
>
<el-row
:gutter=
"15"
>
<el-row
:gutter=
"15"
>
<el-form
<el-form
ref=
"elForm"
ref=
"elForm"
:model=
"formData"
:model=
"formData"
:rules=
"rules"
:rules=
"rules"
size=
"medium"
size=
"medium"
label-width=
"100px"
label-width=
"100px"
>
>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"生成类型"
prop=
"type"
>
<el-form-item
label=
"生成类型"
prop=
"type"
>
<el-radio-group
v-model=
"formData.type"
>
<el-radio-group
v-model=
"formData.type"
>
<el-radio-button
<el-radio-button
v-for=
"(item, index) in typeOptions"
v-for=
"(item, index) in typeOptions"
:key=
"index"
:key=
"index"
:label=
"item.value"
:label=
"item.value"
:disabled=
"item.disabled"
:disabled=
"item.disabled"
>
>
{{
item
.
label
}}
{{
item
.
label
}}
</el-radio-button>
</el-radio-button>
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
<el-form-item
v-if=
"showFileName"
label=
"文件名"
prop=
"fileName"
>
<el-form-item
v-if=
"showFileName"
label=
"文件名"
prop=
"fileName"
>
<el-input
v-model=
"formData.fileName"
placeholder=
"请输入文件名"
clearable
/>
<el-input
v-model=
"formData.fileName"
placeholder=
"请输入文件名"
clearable
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-form>
</el-form>
</el-row>
</el-row>
<div
slot=
"footer"
>
<div
slot=
"footer"
>
<el-button
@
click=
"close"
>
<el-button
@
click=
"close"
>
取消
取消
</el-button>
</el-button>
<el-button
type=
"primary"
@
click=
"hand
e
lConfirm"
>
<el-button
type=
"primary"
@
click=
"handl
e
Confirm"
>
确定
确定
</el-button>
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
export
default
{
export
default
{
inheritAttrs
:
false
,
inheritAttrs
:
false
,
props
:
[
'
showFileName
'
],
props
:
[
'
showFileName
'
],
data
()
{
data
()
{
return
{
return
{
formData
:
{
formData
:
{
fileName
:
undefined
,
fileName
:
undefined
,
type
:
'
file
'
type
:
'
file
'
},
},
rules
:
{
rules
:
{
fileName
:
[{
fileName
:
[{
required
:
true
,
required
:
true
,
message
:
'
请输入文件名
'
,
message
:
'
请输入文件名
'
,
trigger
:
'
blur
'
trigger
:
'
blur
'
}],
}],
type
:
[{
type
:
[{
required
:
true
,
required
:
true
,
message
:
'
生成类型不能为空
'
,
message
:
'
生成类型不能为空
'
,
trigger
:
'
change
'
trigger
:
'
change
'
}]
}]
},
},
typeOptions
:
[{
typeOptions
:
[{
label
:
'
页面
'
,
label
:
'
页面
'
,
value
:
'
file
'
value
:
'
file
'
},
{
},
{
label
:
'
弹窗
'
,
label
:
'
弹窗
'
,
value
:
'
dialog
'
value
:
'
dialog
'
}]
}]
}
}
},
},
computed
:
{
computed
:
{
},
},
watch
:
{},
watch
:
{},
mounted
()
{},
mounted
()
{},
methods
:
{
methods
:
{
onOpen
()
{
onOpen
()
{
if
(
this
.
showFileName
)
{
if
(
this
.
showFileName
)
{
this
.
formData
.
fileName
=
`
${
+
new
Date
()}
.vue`
this
.
formData
.
fileName
=
`
${
+
new
Date
()}
.vue`
}
}
},
},
onClose
()
{
onClose
()
{
},
},
close
(
e
)
{
close
(
e
)
{
this
.
$emit
(
'
update:visible
'
,
false
)
this
.
$emit
(
'
update:visible
'
,
false
)
},
},
hand
e
lConfirm
()
{
handl
e
Confirm
()
{
this
.
$refs
.
elForm
.
validate
(
valid
=>
{
this
.
$refs
.
elForm
.
validate
(
valid
=>
{
if
(
!
valid
)
return
if
(
!
valid
)
return
this
.
$emit
(
'
confirm
'
,
{
...
this
.
formData
})
this
.
$emit
(
'
confirm
'
,
{
...
this
.
formData
})
this
.
close
()
this
.
close
()
})
})
}
}
}
}
}
}
</
script
>
</
script
>
Prev
1
2
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