Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
finance-manage
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
finance-oa
finance-manage
Commits
cb0a4b78
Commit
cb0a4b78
authored
Feb 24, 2020
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
若依 2.1
parent
46a16952
Changes
61
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
61 changed files
with
4143 additions
and
59 deletions
+4143
-59
ruoyi-ui/package.json
ruoyi-ui/package.json
+8
-3
ruoyi-ui/src/assets/icons/svg/cascader.svg
ruoyi-ui/src/assets/icons/svg/cascader.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/checkbox.svg
ruoyi-ui/src/assets/icons/svg/checkbox.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/color.svg
ruoyi-ui/src/assets/icons/svg/color.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/component.svg
ruoyi-ui/src/assets/icons/svg/component.svg
+1
-1
ruoyi-ui/src/assets/icons/svg/date-range.svg
ruoyi-ui/src/assets/icons/svg/date-range.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/date.svg
ruoyi-ui/src/assets/icons/svg/date.svg
+1
-1
ruoyi-ui/src/assets/icons/svg/github.svg
ruoyi-ui/src/assets/icons/svg/github.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/input.svg
ruoyi-ui/src/assets/icons/svg/input.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/number.svg
ruoyi-ui/src/assets/icons/svg/number.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/password.svg
ruoyi-ui/src/assets/icons/svg/password.svg
+1
-1
ruoyi-ui/src/assets/icons/svg/question.svg
ruoyi-ui/src/assets/icons/svg/question.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/radio.svg
ruoyi-ui/src/assets/icons/svg/radio.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/rate.svg
ruoyi-ui/src/assets/icons/svg/rate.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/row.svg
ruoyi-ui/src/assets/icons/svg/row.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/select.svg
ruoyi-ui/src/assets/icons/svg/select.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/slider.svg
ruoyi-ui/src/assets/icons/svg/slider.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/switch.svg
ruoyi-ui/src/assets/icons/svg/switch.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/textarea.svg
ruoyi-ui/src/assets/icons/svg/textarea.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/time-range.svg
ruoyi-ui/src/assets/icons/svg/time-range.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/time.svg
ruoyi-ui/src/assets/icons/svg/time.svg
+1
-0
ruoyi-ui/src/assets/icons/svg/upload.svg
ruoyi-ui/src/assets/icons/svg/upload.svg
+1
-0
ruoyi-ui/src/components/RuoYi/Doc/index.vue
ruoyi-ui/src/components/RuoYi/Doc/index.vue
+21
-0
ruoyi-ui/src/components/RuoYi/Git/index.vue
ruoyi-ui/src/components/RuoYi/Git/index.vue
+3
-3
ruoyi-ui/src/layout/components/Navbar.vue
ruoyi-ui/src/layout/components/Navbar.vue
+10
-4
ruoyi-ui/src/main.js
ruoyi-ui/src/main.js
+2
-1
ruoyi-ui/src/utils/generator/config.js
ruoyi-ui/src/utils/generator/config.js
+423
-0
ruoyi-ui/src/utils/generator/css.js
ruoyi-ui/src/utils/generator/css.js
+18
-0
ruoyi-ui/src/utils/generator/drawingDefalut.js
ruoyi-ui/src/utils/generator/drawingDefalut.js
+29
-0
ruoyi-ui/src/utils/generator/html.js
ruoyi-ui/src/utils/generator/html.js
+338
-0
ruoyi-ui/src/utils/generator/icon.json
ruoyi-ui/src/utils/generator/icon.json
+1
-0
ruoyi-ui/src/utils/generator/js.js
ruoyi-ui/src/utils/generator/js.js
+236
-0
ruoyi-ui/src/utils/generator/render.js
ruoyi-ui/src/utils/generator/render.js
+121
-0
ruoyi-ui/src/utils/index.js
ruoyi-ui/src/utils/index.js
+69
-0
ruoyi-ui/src/utils/permission.js
ruoyi-ui/src/utils/permission.js
+31
-6
ruoyi-ui/src/utils/ruoyi.js
ruoyi-ui/src/utils/ruoyi.js
+30
-1
ruoyi-ui/src/views/system/dept/index.vue
ruoyi-ui/src/views/system/dept/index.vue
+16
-5
ruoyi-ui/src/views/system/menu/index.vue
ruoyi-ui/src/views/system/menu/index.vue
+17
-5
ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue
ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue
+106
-0
ruoyi-ui/src/views/tool/build/DraggableItem.vue
ruoyi-ui/src/views/tool/build/DraggableItem.vue
+100
-0
ruoyi-ui/src/views/tool/build/IconsDialog.vue
ruoyi-ui/src/views/tool/build/IconsDialog.vue
+123
-0
ruoyi-ui/src/views/tool/build/RightPanel.vue
ruoyi-ui/src/views/tool/build/RightPanel.vue
+944
-0
ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue
ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue
+149
-0
ruoyi-ui/src/views/tool/build/index.vue
ruoyi-ui/src/views/tool/build/index.vue
+787
-3
ruoyi-ui/src/views/tool/gen/genInfoForm.vue
ruoyi-ui/src/views/tool/gen/genInfoForm.vue
+1
-1
ruoyi/pom.xml
ruoyi/pom.xml
+1
-9
ruoyi/src/main/java/com/ruoyi/common/constant/GenConstants.java
...src/main/java/com/ruoyi/common/constant/GenConstants.java
+1
-1
ruoyi/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java
...src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java
+1
-1
ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeEntity.java
.../main/java/com/ruoyi/framework/web/domain/TreeEntity.java
+79
-0
ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java
...om/ruoyi/project/system/controller/SysDeptController.java
+1
-1
ruoyi/src/main/java/com/ruoyi/project/system/controller/SysMenuController.java
...om/ruoyi/project/system/controller/SysMenuController.java
+1
-1
ruoyi/src/main/java/com/ruoyi/project/tool/gen/controller/GenController.java
.../com/ruoyi/project/tool/gen/controller/GenController.java
+0
-1
ruoyi/src/main/java/com/ruoyi/project/tool/gen/domain/GenTable.java
...main/java/com/ruoyi/project/tool/gen/domain/GenTable.java
+3
-1
ruoyi/src/main/java/com/ruoyi/project/tool/gen/util/VelocityUtils.java
...n/java/com/ruoyi/project/tool/gen/util/VelocityUtils.java
+14
-3
ruoyi/src/main/resources/application.yml
ruoyi/src/main/resources/application.yml
+1
-1
ruoyi/src/main/resources/mybatis/monitor/SysLogininforMapper.xml
...rc/main/resources/mybatis/monitor/SysLogininforMapper.xml
+1
-0
ruoyi/src/main/resources/mybatis/monitor/SysOperLogMapper.xml
...i/src/main/resources/mybatis/monitor/SysOperLogMapper.xml
+1
-1
ruoyi/src/main/resources/vm/java/controller.java.vm
ruoyi/src/main/resources/vm/java/controller.java.vm
+11
-0
ruoyi/src/main/resources/vm/java/domain.java.vm
ruoyi/src/main/resources/vm/java/domain.java.vm
+10
-2
ruoyi/src/main/resources/vm/vue/index-tree.vue.vm
ruoyi/src/main/resources/vm/vue/index-tree.vue.vm
+410
-0
ruoyi/src/main/resources/vm/vue/index.vue.vm
ruoyi/src/main/resources/vm/vue/index.vue.vm
+4
-2
No files found.
ruoyi-ui/package.json
View file @
cb0a4b78
{
"name"
:
"ruoyi"
,
"version"
:
"2.
0
.0"
,
"version"
:
"2.
1
.0"
,
"description"
:
"若依管理系统"
,
"author"
:
"若依"
,
"license"
:
"MIT"
,
...
...
@@ -41,11 +41,12 @@
},
"dependencies"
:
{
"@riophae/vue-treeselect"
:
"0.4.0"
,
"vue-quill-editor"
:
"3.0.6"
,
"vue-cropper"
:
"0.4.9"
,
"axios"
:
"0.18.1"
,
"clipboard"
:
"2.0.4"
,
"echarts"
:
"4.2.1"
,
"element-ui"
:
"2.11.1"
,
"file-saver"
:
"2.0.1"
,
"js-beautify"
:
"^1.10.2"
,
"fuse.js"
:
"3.4.4"
,
"js-cookie"
:
"2.2.0"
,
"jsencrypt"
:
"3.0.0-rc.1"
,
...
...
@@ -55,13 +56,17 @@
"screenfull"
:
"4.2.0"
,
"vue"
:
"2.6.10"
,
"vue-count-to"
:
"1.0.13"
,
"vue-quill-editor"
:
"3.0.6"
,
"vue-cropper"
:
"0.4.9"
,
"vue-router"
:
"3.0.2"
,
"vue-splitpane"
:
"1.0.4"
,
"vuedraggable"
:
"2.20.0"
,
"vuex"
:
"3.1.0"
},
"devDependencies"
:
{
"@babel/core"
:
"7.0.0"
,
"@babel/register"
:
"7.0.0"
,
"@babel/parser"
:
"^7.7.4"
,
"@vue/cli-plugin-babel"
:
"3.5.3"
,
"@vue/cli-plugin-eslint"
:
"^3.9.1"
,
"@vue/cli-plugin-unit-jest"
:
"3.5.3"
,
...
...
ruoyi-ui/src/assets/icons/svg/cascader.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1576153230908"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"971"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M772.87036133 734.06115723c-43.34106445 0-80.00793458 27.93273926-93.76831055 66.57714843H475.90991211c-56.60705567 0-102.66723633-46.06018067-102.66723633-102.66723633V600.82446289h305.859375c13.76037598 38.64440918 50.42724609 66.57714844 93.76831055 66.57714844 55.12390137 0 99.94812012-44.82421875 99.94812012-99.94812012S827.9942627 467.50537109 772.87036133 467.50537109c-43.34106445 0-80.00793458 27.93273926-93.76831055 66.57714844H373.24267578V401.01062011h321.92687989c55.12390137 0 99.94812012-44.82421875 99.94812011-99.94812011V190.07312011C795.11767578 134.94921875 750.29345703 90.125 695.16955567 90.125H251.12963867C196.0057373 90.125 151.18151855 134.94921875 151.18151855 190.07312011V301.0625c0 55.12390137 44.82421875 99.94812012 99.94812012 99.94812012h55.53588867v296.96044921c0 93.35632325 75.97045898 169.32678223 169.32678224 169.32678223h203.19213866c13.76037598 38.64440918 50.42724609 66.57714844 93.76831055 66.57714844 55.12390137 0 99.94812012-44.82421875 99.94812012-99.94812012s-44.90661622-99.86572266-100.03051758-99.86572265z m0-199.89624024c18.37463379 0 33.28857422 14.91394043 33.28857422 33.28857423s-14.91394043 33.28857422-33.28857422 33.28857421-33.28857422-14.91394043-33.28857422-33.28857421 14.91394043-33.28857422 33.28857422-33.28857422zM217.75866699 301.0625V190.07312011c0-18.37463379 14.91394043-33.28857422 33.28857423-33.28857421h444.03991698c18.37463379 0 33.28857422 14.91394043 33.28857422 33.28857422V301.0625c0 18.37463379-14.91394043 33.28857422-33.28857422 33.28857422H251.12963867c-18.37463379 0-33.37097168-14.91394043-33.37097168-33.28857422z m555.11169434 566.23535156c-18.37463379 0-33.28857422-14.91394043-33.28857422-33.28857422 0-18.37463379 14.91394043-33.28857422 33.28857422-33.28857422s33.28857422 14.91394043 33.28857422 33.28857422c0.08239747 18.29223633-14.91394043 33.28857422-33.28857422 33.28857422z"
p-id=
"972"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/checkbox.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1575982282951"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"902"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M828.40625 90.125H195.59375C137.375 90.125 90.125 137.375 90.125 195.59375v632.8125c0 58.21875 47.25 105.46875 105.46875 105.46875h632.8125c58.21875 0 105.46875-47.25 105.46875-105.46875V195.59375c0-58.21875-47.25-105.46875-105.46875-105.46875z m52.734375 738.28125c0 29.16-23.57015625 52.734375-52.734375 52.734375H195.59375c-29.109375 0-52.734375-23.574375-52.734375-52.734375V195.59375c0-29.109375 23.625-52.734375 52.734375-52.734375h632.8125c29.16 0 52.734375 23.625 52.734375 52.734375v632.8125z"
p-id=
"903"
></path><path
d=
"M421.52890625 709.55984375a36.28125 36.28125 0 0 1-27.55265625-12.66890625L205.17453125 476.613125a36.28546875 36.28546875 0 0 1 55.10109375-47.22890625l164.986875 192.4846875 342.16171875-298.48078125a36.2896875 36.2896875 0 0 1 47.70984375 54.68765625L445.3859375 700.6203125a36.3234375 36.3234375 0 0 1-23.85703125 8.93953125z"
p-id=
"904"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/color.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1577252187056"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"2508"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M747.59340925 691.12859384c11.51396329 0.25305413 22.43746719-0.21087818 40.74171707-1.51832482 29.35428085-2.10878421 35.84933734-2.36183835 46.47761114-0.8856895 24.71495444 3.37405491 41.12129828 21.76265671 32.47528161 47.95376084-85.57447632 258.19957947-442.00123984 249.76444099-628.67084683 50.73735554-153.47733892-159.33976008-153.09775772-414.41833795 0.92786545-573.42069196 159.71934128-162.67163983 424.03439521-166.59397897 565.78689185 0.63263534 80.38686649 94.81095318 108.34934958 169.16669549 89.11723508 230.57450162-15.01454608 47.99593598-50.61082928 77.68762207-119.77896259 114.63352789-4.89237973 2.65706845-29.35428085 15.52065436-35.84933652 19.02123633-46.94154346 25.30541465-63.51659033 41.20565021-62.20914449 58.45550757 2.95229856 39.13904114 24.16667102 52.7196135 70.98168823 53.81618115z m44.41100207 50.10472101c-19.82257471 1.43397372-32.05352527 1.940082-45.63409763 1.6448519-70.34905207-1.60267593-115.98314969-30.91478165-121.38163769-101.64341492-3.45840683-46.05585397 24.7571304-73.13264758 89.24376132-107.96976837 6.7902866-3.66928501 31.37871396-16.57504688 36.06021551-19.06341229 57.69634516-30.83042972 85.15271997-53.73183005 94.76877722-84.47790866 12.77923398-40.78389304-9.10994898-98.94417051-79.24812286-181.6507002-121.17075953-142.97559219-350.14258521-139.60153647-489.2380134 2.06660824-134.49827774 138.84237405-134.79350784 362.12048163-0.42175717 501.637667 158.53842169 168.99799328 451.9968783 181.18676788 534.57688175-11.80919339-4.68150156 0.2952301-10.71262573 0.67481131-18.72600705 1.26527069z"
p-id=
"2509"
></path><path
d=
"M346.03865637 637.18588562a78.82636652 78.82636652 0 0 0 78.32025825-79.29029883c0-43.69401562-35.005823-79.29029883-78.32025825-79.29029882a78.82636652 78.82636652 0 0 0-78.36243338 79.29029882c0 43.69401562 35.005823 79.29029883 78.36243338 79.29029883z m0-51.7495729a27.07679361 27.07679361 0 0 1-26.5706845-27.54072593c0-15.30977536 11.97789643-27.54072593 26.5706845-27.54072592 14.55061295 0 26.57068533 12.23095057 26.57068533 27.54072592a27.07679361 27.07679361 0 0 1-26.57068533 27.54072593zM475.7289063 807.11174353a78.82636652 78.82636652 0 0 0 78.3624334-79.29029882c0-43.69401562-34.96364785-79.29029883-78.32025825-79.29029883a78.82636652 78.82636652 0 0 0-78.32025742 79.29029883c0 43.69401562 34.96364785 79.29029883 78.32025742 79.29029882z m0-51.74957208a27.07679361 27.07679361 0 0 1-26.57068532-27.54072674c0-15.30977536 12.06224753-27.54072593 26.57068532-27.54072593 14.59278892 0 26.57068533 12.23095057 26.57068453 27.54072593a27.07679361 27.07679361 0 0 1-26.57068453 27.54072674zM601.24376214 377.21492718a78.82636652 78.82636652 0 0 0 78.32025742-79.29029883c0-43.69401562-34.96364785-79.29029883-78.32025742-79.29029882a78.82636652 78.82636652 0 0 0-78.32025823 79.29029883c0 43.69401562 34.96364785 79.29029883 78.32025824 79.29029883z m1e-8-51.74957208a27.07679361 27.07679361 0 0 1-26.57068534-27.54072675c0-15.30977536 11.97789643-27.54072593 26.57068534-27.54072591 14.55061295 0 26.57068533 12.23095057 26.57068451 27.54072592a27.07679361 27.07679361 0 0 1-26.57068451 27.54072674zM378.80916809 433.85687983a78.82636652 78.82636652 0 0 0 78.32025824-79.29029883c0-43.69401562-34.96364785-79.29029883-78.32025824-79.29029802a78.82636652 78.82636652 0 0 0-78.32025742 79.29029802c0 43.69401562 34.96364785 79.29029883 78.32025742 79.29029883z m0-51.74957209a27.07679361 27.07679361 0 0 1-26.57068451-27.54072674c0-15.30977536 11.97789643-27.54072593 26.57068451-27.54072593 14.55061295 0 26.57068533 12.23095057 26.57068533 27.54072593a27.07679361 27.07679361 0 0 1-26.57068533 27.54072674z"
p-id=
"2510"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/component.svg
View file @
cb0a4b78
<svg
width=
"128"
height=
"128"
xmlns=
"http://www.w3.org/2000/svg"
><path
d=
"M0 0h54.857v54.857H0V0zm0 73.143h54.857V128H0V73.143zm73.143 0H128V128H73.143V73.143zm27.428-18.286C115.72 54.857 128 42.577 128 27.43 128 12.28 115.72 0 100.571 0 85.423 0 73.143 12.28 73.143 27.429c0 15.148 12.28 27.428 27.428 27.428z"
/></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1575804206892"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"3145"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M826.56 470.016c-32.896 0-64.384 12.288-89.984 35.52l0-104.96c0-62.208-50.496-112.832-112.64-113.088L623.936 287.04 519.552 287.104C541.824 262.72 554.56 230.72 554.56 197.12c0-73.536-59.904-133.44-133.504-133.44-73.472 0-133.376 59.904-133.376 133.44 0 32.896 12.224 64.256 35.52 89.984L175.232 287.104l0 0.576C113.728 288.704 64 338.88 64 400.576l0.32 0 0.32 116.48C60.864 544.896 70.592 577.728 100.8 588.48c12.736 4.608 37.632 7.488 60.864-25.28 12.992-18.368 34.24-29.248 56.64-29.248 38.336 0 69.504 31.104 69.504 69.312 0 38.4-31.168 69.504-69.504 69.504-22.656 0-44.032-11.264-57.344-30.4C138.688 610.112 112.576 615.36 102.464 619.136c-29.824 10.752-39.104 43.776-38.144 67.392l0 160.384L64 846.912C64 909.248 114.752 960 177.216 960l446.272 0c62.4 0 113.152-50.752 113.152-113.152l0-145.024c24.384 22.272 56.384 35.008 89.984 35.008 73.536 0 133.44-59.904 133.44-133.504C960 529.92 900.096 470.016 826.56 470.016zM826.56 672.896c-22.72 0-44.032-11.264-57.344-30.4-22.272-32.384-48.448-27.136-58.56-23.36-29.824 10.752-39.04 43.776-38.08 67.392l0 160.384c0 27.136-22.016 49.152-49.152 49.152L177.216 896.064C150.08 896 128 873.984 128 846.848l0.32 0 0-145.024c24.384 22.272 56.384 35.008 89.984 35.008 73.6 0 133.504-59.904 133.504-133.504 0-73.472-59.904-133.376-133.504-133.376-32.896 0-64.32 12.288-89.984 35.52l0-104.96L128 400.512c0-27.072 22.08-49.152 49.216-49.152L177.216 351.04 334.656 350.72c3.776 0.512 7.616 0.832 11.52 0.832 24.896 0 50.752-10.816 60.032-37.056 4.544-12.736 7.424-37.568-25.344-60.736C362.624 240.768 351.68 219.52 351.68 197.12c0-38.272 31.104-69.44 69.376-69.44 38.336 0 69.504 31.168 69.504 69.44 0 22.72-11.264 44.032-30.528 57.472C427.968 276.736 433.088 302.784 436.8 313.024c10.752 29.888 43.072 39.232 67.392 38.08l119.232 0 0 0.384c27.136 0 49.152 22.08 49.152 49.152l0.256 116.48c-3.776 27.84 6.016 60.736 36.224 71.488 12.736 4.608 37.632 7.488 60.8-25.28 13.056-18.368 34.24-29.248 56.704-29.248C864.832 534.016 896 565.12 896 603.392 896 641.728 864.832 672.896 826.56 672.896z"
p-id=
"3146"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/date-range.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1579774833889"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"1376"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M887.466667 192.853333h-100.693334V119.466667c0-10.24-6.826667-17.066667-17.066666-17.066667s-17.066667 6.826667-17.066667 17.066667v73.386666H303.786667V119.466667c0-10.24-6.826667-17.066667-17.066667-17.066667s-17.066667 6.826667-17.066667 17.066667v73.386666H168.96c-46.08 0-85.333333 37.546667-85.333333 85.333334V836.266667c0 46.08 37.546667 85.333333 85.333333 85.333333H887.466667c46.08 0 85.333333-37.546667 85.333333-85.333333V278.186667c0-47.786667-37.546667-85.333333-85.333333-85.333334z m-718.506667 34.133334h100.693333v66.56c0 10.24 6.826667 17.066667 17.066667 17.066666s17.066667-6.826667 17.066667-17.066666v-66.56h450.56v66.56c0 10.24 6.826667 17.066667 17.066666 17.066666s17.066667-6.826667 17.066667-17.066666v-66.56H887.466667c27.306667 0 51.2 22.186667 51.2 51.2v88.746666H117.76v-88.746666c0-29.013333 22.186667-51.2 51.2-51.2zM887.466667 887.466667H168.96c-27.306667 0-51.2-22.186667-51.2-51.2V401.066667H938.666667V836.266667c0 27.306667-22.186667 51.2-51.2 51.2z"
p-id=
"1377"
></path><path
d=
"M858.453333 493.226667H327.68c-10.24 0-17.066667 6.826667-17.066667 17.066666v114.346667h-116.053333c-10.24 0-17.066667 6.826667-17.066667 17.066667v133.12c0 10.24 6.826667 17.066667 17.066667 17.066666H460.8c10.24 0 17.066667-6.826667 17.066667-17.066666v-114.346667h380.586666c10.24 0 17.066667-6.826667 17.066667-17.066667v-133.12c0-10.24-6.826667-17.066667-17.066667-17.066666z m-413.013333 34.133333v97.28h-98.986667v-97.28h98.986667z m-230.4 131.413333h98.986667v98.986667h-98.986667v-98.986667z m131.413333 97.28v-97.28h98.986667v97.28h-98.986667z m133.12-228.693333h97.28v98.986667h-97.28v-98.986667z m131.413334 0h98.986666v98.986667h-98.986666v-98.986667z m230.4 97.28h-98.986667v-98.986667h98.986667v98.986667z"
p-id=
"1378"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/date.svg
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1567417179372"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"1155"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M947.2 1024 76.8 1024C38.4 1024 0 992 0 953.6L0 172.8c0-38.4 38.4-70.4 76.8-70.4l38.4 0 0 102.4c0 38.4 38.4 70.4 76.8 70.4l76.8 0c44.8 0 76.8-32 76.8-70.4L345.6 102.4l313.6 0 0 102.4c0 38.4 38.4 70.4 76.8 70.4l76.8 0c44.8 0 76.8-32 76.8-70.4L889.6 102.4l38.4 0c44.8 0 76.8 32 76.8 70.4l0 787.2C1024 992 985.6 1024 947.2 1024zM352 339.2 115.2 339.2 115.2 512l236.8 0L352 339.2zM352 544 115.2 544l0 172.8 236.8 0L352 544zM352 748.8 115.2 748.8l0 172.8 236.8 0L352 748.8zM627.2 339.2 396.8 339.2 396.8 512l236.8 0L633.6 339.2zM627.2 544 396.8 544l0 172.8 236.8 0L633.6 544zM627.2 748.8 396.8 748.8l0 172.8 236.8 0L633.6 748.8zM908.8 339.2l-236.8 0L672 512l236.8 0L908.8 339.2zM908.8 544l-236.8 0 0 172.8 236.8 0L908.8 544zM908.8 748.8l-236.8 0 0 172.8 236.8 0L908.8 748.8zM787.2 236.8c-44.8 0-76.8-32-76.8-70.4L710.4 70.4c0-38.4 38.4-70.4 76.8-70.4s76.8 32 76.8 70.4l0 102.4C864 211.2 832 236.8 787.2 236.8zM236.8 236.8C192 236.8 160 211.2 160 172.8L160 70.4C160 32 192 0 236.8 0s76.8 32 76.8 70.4l0 102.4C313.6 211.2 281.6 236.8 236.8 236.8z"
p-id=
"1156"
></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1577186573535"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"1068"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M479.85714249 608.42857168h64.28571502c19.28571417 0 32.14285751-12.85714249 32.14285664-32.14285751s-12.85714249-32.14285751-32.14285664-32.14285664h-64.28571504c-19.28571417 0-32.14285751 12.85714249-32.14285664 32.14285662s12.85714249 32.14285751 32.14285664 32.14285753z m-2e-8 122.14285665h64.28571504c19.28571417 0 32.14285751-12.85714249 32.14285664-32.14285665s-12.85714249-32.14285751-32.14285664-32.14285751h-64.28571504c-19.28571417 0-32.14285751 12.85714249-32.14285664 32.14285751s12.85714249 32.14285751 32.14285664 32.14285664z m353.57142921-559.28571416h-128.57142921v-32.14285664c0-19.28571417-12.85714249-32.14285751-32.14285664-32.14285753s-32.14285751 12.85714249-32.14285751 32.14285753v32.14285664h-257.14285665v-32.14285664c0-19.28571417-12.85714249-32.14285751-32.14285752-32.14285753s-32.14285751 12.85714249-32.14285664 32.14285753v32.14285664h-128.57142919c-70.71428585 0-128.57142832 57.85714249-128.57142832 122.14285751v501.42857081c0 70.71428585 57.85714249 128.57142832 128.57142832 122.14285751h642.85714335c70.71428585 0 128.57142832-57.85714249 128.57142833-122.14285751v-501.42857081c0-70.71428585-57.85714249-122.14285753-128.57142833-122.14285751z m64.28571415 623.57142832c0 32.14285751-32.14285751 64.28571415-64.28571416 64.28571504h-642.85714335c-32.14285751 0-64.28571415-25.71428583-64.28571417-64.28571504v-372.85714249h771.42857168v372.85714249z m0-437.14285664h-771.42857168v-64.28571417c0-32.14285751 32.14285751-64.28571415 64.28571417-64.28571415h128.57142919v32.14285664c0 19.28571417 12.85714249 32.14285751 32.14285664 32.14285751s32.14285751-12.85714249 32.14285753-32.14285751v-32.14285664h257.14285665v32.14285664c0 19.28571417 12.85714249 32.14285751 32.1428575 32.14285751s32.14285751-12.85714249 32.14285664-32.14285751v-32.14285664h128.57142921c32.14285751 0 64.28571415 25.71428583 64.28571415 64.28571415v64.28571417z m-610.71428583 372.85714247h64.28571415c19.28571417 0 32.14285751-12.85714249 32.14285753-32.14285664s-12.85714249-32.14285751-32.14285753-32.14285751h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285751 32.14285751s12.85714249 32.14285751 32.14285751 32.14285665z m385.71428583-122.14285664h64.28571417c19.28571417 0 32.14285751-12.85714249 32.14285751-32.14285751s-12.85714249-32.14285751-32.14285751-32.14285664h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285753 32.14285664s12.85714249 32.14285751 32.14285753 32.14285751z m-385.71428583 0h64.28571415c19.28571417 0 32.14285751-12.85714249 32.14285753-32.14285751s-12.85714249-32.14285751-32.14285753-32.14285664h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285751 32.14285664s12.85714249 32.14285751 32.14285751 32.14285751z m385.71428583 122.14285665h64.28571417c19.28571417 0 32.14285751-12.85714249 32.14285751-32.14285665s-12.85714249-32.14285751-32.14285751-32.14285751h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285753 32.14285751s12.85714249 32.14285751 32.14285753 32.14285665z"
p-id=
"1069"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/github.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1581238998885"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"4187"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M511.542857 14.057143C228.914286 13.942857 0 242.742857 0 525.142857 0 748.457143 143.2 938.285714 342.628571 1008c26.857143 6.742857 22.742857-12.342857 22.742858-25.371429v-88.571428c-155.085714 18.171429-161.371429-84.457143-171.771429-101.6C172.571429 756.571429 122.857143 747.428571 137.714286 730.285714c35.314286-18.171429 71.314286 4.571429 113.028571 66.171429 30.171429 44.685714 89.028571 37.142857 118.857143 29.714286 6.514286-26.857143 20.457143-50.857143 39.657143-69.485715-160.685714-28.8-227.657143-126.857143-227.657143-243.428571 0-56.571429 18.628571-108.571429 55.2-150.514286-23.314286-69.142857 2.171429-128.342857 5.6-137.142857 66.4-5.942857 135.428571 47.542857 140.8 51.771429 37.714286-10.171429 80.8-15.542857 129.028571-15.542858 48.457143 0 91.657143 5.6 129.714286 15.885715 12.914286-9.828571 76.914286-55.771429 138.628572-50.171429 3.314286 8.8 28.228571 66.628571 6.285714 134.857143 37.028571 42.057143 55.885714 94.514286 55.885714 151.2 0 116.8-67.428571 214.971429-228.571428 243.314286a145.714286 145.714286 0 0 1 43.542857 104v128.571428c0.914286 10.285714 0 20.457143 17.142857 20.457143 202.4-68.228571 348.114286-259.428571 348.114286-484.685714 0-282.514286-229.028571-511.2-511.428572-511.2z"
p-id=
"4188"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/input.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1575802859706"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"3102"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M896 224H128c-35.2 0-64 28.8-64 64v448c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64V288c0-35.2-28.8-64-64-64z m0 480c0 19.2-12.8 32-32 32H160c-19.2 0-32-12.8-32-32V320c0-19.2 12.8-32 32-32h704c19.2 0 32 12.8 32 32v384z"
p-id=
"3103"
></path><path
d=
"M224 352c-19.2 0-32 12.8-32 32v256c0 16 12.8 32 32 32s32-12.8 32-32V384c0-16-12.8-32-32-32z"
p-id=
"3104"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/number.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1575802851180"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"2867"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M279.272727 791.272727h512a46.545455 46.545455 0 0 1 0 93.090909H279.272727a46.545455 46.545455 0 0 1 0-93.090909z m33.838546-617.984V651.636364H193.722182V395.170909c0-37.003636-0.884364-59.298909-2.653091-66.746182a24.948364 24.948364 0 0 0-14.615273-16.989091c-8.005818-3.863273-25.786182-5.771636-53.341091-5.771636h-11.822545v-55.854545c57.716364-12.381091 101.562182-37.888 131.490909-76.520728h70.283636z m303.709091 396.8V651.636364H354.164364v-68.235637c77.777455-127.255273 124.043636-206.010182 138.705454-236.218182 14.661818-30.254545 22.016-53.853091 22.016-70.74909 0-13.032727-2.234182-22.714182-6.656-29.137455-4.421818-6.376727-11.170909-9.588364-20.247273-9.588364a22.248727 22.248727 0 0 0-20.200727 10.612364c-4.468364 7.121455-6.656 21.178182-6.656 42.263273v45.521454H354.164364v-17.454545c0-26.763636 1.396364-47.941818 4.142545-63.348364 2.746182-15.499636 9.541818-30.72 20.386909-45.661091 10.798545-14.987636 24.901818-26.298182 42.216727-33.978182 17.361455-7.68 38.167273-11.543273 62.37091-11.543272 47.476364 0 83.316364 11.776 107.706181 35.328 24.296727 23.552 36.445091 53.341091 36.445091 89.367272 0 27.368727-6.842182 56.32-20.48 86.853819-13.730909 30.533818-54.039273 95.325091-121.018182 194.420363h130.885819z m270.615272-189.393454c18.152727 6.097455 31.650909 16.104727 40.494546 29.975272 8.843636 13.917091 13.312 46.452364 13.312 97.652364 0 38.027636-4.328727 67.490909-13.032727 88.529455-8.657455 20.945455-23.598545 36.910545-44.869819 47.848727-21.271273 10.938182-48.593455 16.384-81.873454 16.384-37.794909 0-67.490909-6.330182-89.088-19.083636-21.550545-12.660364-35.746909-28.253091-42.542546-46.638546-6.795636-18.432-10.193455-50.362182-10.193454-95.883636v-37.841455h119.389091v77.730909c0 20.666182 1.210182 33.838545 3.723636 39.424 2.420364 5.585455 7.912727 8.424727 16.337455 8.424728 9.309091 0 15.36-3.537455 18.338909-10.612364 2.932364-7.121455 4.421818-25.6 4.421818-55.575273v-33.047273c0-18.338909-2.048-31.744-6.190546-40.215272a30.72 30.72 0 0 0-18.338909-16.709818c-8.052364-2.653091-23.738182-4.189091-46.964363-4.561455V357.050182c28.392727 0 45.893818-1.070545 52.596363-3.258182a22.946909 22.946909 0 0 0 14.475637-14.149818c2.932364-7.307636 4.421818-18.711273 4.421818-34.257455v-26.624c0-16.756364-1.722182-27.741091-5.12-33.047272-3.490909-5.352727-8.843636-8.005818-16.151273-8.005819-8.285091 0-13.963636 2.792727-16.989091 8.378182-3.025455 5.632-4.561455 17.640727-4.561454 35.933091v39.284364h-119.389091v-40.773818c0-45.661091 10.472727-76.567273 31.325091-92.625455 20.898909-16.058182 54.085818-24.064 99.607272-24.064 56.878545 0 95.511273 11.170909 115.805091 33.373091 20.293818 22.248727 30.394182 53.201455 30.394182 92.765091 0 26.810182-3.630545 46.173091-10.891636 58.088727-7.307636 11.915636-20.107636 22.807273-38.446546 32.628364z"
p-id=
"2868"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/password.svg
View file @
cb0a4b78
<svg
width=
"128"
height=
"128"
xmlns=
"http://www.w3.org/2000/svg"
><path
d=
"M108.8 44.322H89.6v-5.36c0-9.04-3.308-24.163-25.6-24.163-23.145 0-25.6 16.881-25.6 24.162v5.361H19.2v-5.36C19.2 15.281 36.798 0 64 0c27.202 0 44.8 15.281 44.8 38.961v5.361zm-32 39.356c0-5.44-5.763-9.832-12.8-9.832-7.037 0-12.8 4.392-12.8 9.832 0 3.682 2.567 6.808 6.407 8.477v11.205c0 2.718 2.875 4.962 6.4 4.962 3.524 0 6.4-2.244 6.4-4.962V92.155c3.833-1.669 6.393-4.795 6.393-8.477zM128 64v49.201c0 8.158-8.645 14.799-19.2 14.799H19.2C8.651 128 0 121.359 0 113.201V64c0-8.153 8.645-14.799 19.2-14.799h89.6c10.555 0 19.2 6.646 19.2 14.799z"
/></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1575802846045"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"2750"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M868.593046 403.832442c-30.081109-28.844955-70.037123-44.753273-112.624057-44.753273L265.949606 359.079168c-42.554188 0-82.510202 15.908318-112.469538 44.690852-30.236652 28.782533-46.857191 67.222007-46.857191 108.198258l0 294.079782c0 40.977273 16.619516 79.414701 46.702672 108.136859 29.959336 28.844955 70.069869 44.814672 112.624057 44.814672l490.019383 0c42.585911 0 82.696444-15.969717 112.624057-44.814672 30.082132-28.844955 46.579875-67.222007 46.579875-108.136859L915.172921 511.968278C915.171897 471.053426 898.675178 432.677397 868.593046 403.832442zM841.821309 806.049083c0 22.098297-8.882298 42.772152-25.099654 58.306964-16.154935 15.661701-37.81935 24.203238-60.752666 24.203238L265.949606 888.559285c-22.934339 0-44.567032-8.54256-60.877509-24.264637-16.186657-15.474436-25.067932-36.148291-25.067932-58.246589L180.004165 511.968278c0-22.035876 8.881274-42.772152 25.192775-58.307987 16.186657-15.536858 37.81935-24.139793 60.753689-24.139793l490.019383 0c22.933315 0 44.597731 8.602935 60.752666 24.139793 16.21838 15.535835 25.099654 36.272112 25.099654 58.307987L841.822332 806.049083zM510.974136 135.440715c114.914216 0 208.318536 89.75214 208.318536 200.055338l73.350588 0c0-149.113109-126.366036-270.496667-281.669124-270.496667-155.333788 0-281.699824 121.383558-281.699824 270.496667l73.350588 0C302.623877 225.193879 396.059919 135.440715 510.974136 135.440715zM474.299865 747.244792l73.350588 0L547.650453 629.576859l-73.350588 0L474.299865 747.244792z"
p-id=
"2751"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/question.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1581238842264"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"1409"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M512 0C229.233778 0 0 229.233778 0 512s229.233778 512 512 512 512-229.233778 512-512A512 512 0 0 0 512 0z m0 938.666667C276.366222 938.666667 85.333333 747.633778 85.333333 512 85.333333 276.366222 276.366222 85.333333 512 85.333333c235.633778 0 426.666667 191.032889 426.666667 426.666667a426.666667 426.666667 0 0 1-426.666667 426.666667z m0-717.653334a170.666667 170.666667 0 0 0-170.666667 170.666667 42.666667 42.666667 0 0 0 85.333334 0 85.333333 85.333333 0 1 1 85.333333 85.333333 42.666667 42.666667 0 0 0-42.666667 42.666667v111.36a42.666667 42.666667 0 0 0 85.333334 0v-74.24A170.666667 170.666667 0 0 0 512 221.013333z m-42.666667 542.293334a42.666667 42.666667 0 1 0 85.333334 0 42.666667 42.666667 0 0 0-85.333334 0z"
p-id=
"1410"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/radio.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1575966775973"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"879"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M507.39346659 71.84873358c241.53533667 0 437.39770766 195.85422109 437.39770767 437.37442191 0 241.53766571-195.86237099 437.38955776-437.39770767 437.38955776-241.50040803 0-437.34997219-195.85189205-437.34997219-437.38955776C70.0434944 267.70295467 265.89189347 71.84873358 507.39346659 71.84873358L507.39346659 71.84873358zM507.39346659 282.81899805c-125.00686734 0-226.37039389 101.38914133-226.37039388 226.41813048 0 125.01268821 101.36352768 226.39717262 226.37039388 226.39717262 125.04295993 0 226.42395136-101.38448441 226.42395136-226.39717262C733.81625401 384.20813938 632.43642653 282.81899805 507.39346659 282.81899805L507.39346659 282.81899805zM507.39346659 120.78172615c-214.46664192 0-388.42047261 173.95150279-388.4204726 388.44026539 0 214.51204949 173.95499463 388.46122325 388.4204726 388.46122325 214.52369237 0 388.46005817-173.94800981 388.46005818-388.46122325C895.85236082 294.73322894 721.91715897 120.78172615 507.39346659 120.78172615z"
p-id=
"880"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/rate.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1577246781606"
class=
"icon"
viewBox=
"0 0 1069 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"1098"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"84.5595703125"
height=
"81"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M633.72929961 378.02038203l9.49872568 18.68789795 20.78025469 2.79745225 206.61592412 27.33248408a11.46496817 11.46496817 0 0 1 6.6095543 19.47324902l-147.2675168 147.35350284-14.89299345 14.89299345 3.8006376 20.68280244 37.84585956 204.89044571a11.46496817 11.46496817 0 0 1-16.4808914 12.2961788L554.68980898 751.84713388l-18.68789794-9.49299345-18.48726123 9.99171915-183.23885392 99.34968163a11.46496817 11.46496817 0 0 1-16.78471347-11.8662416l32.5433127-205.79617881 3.29617793-20.78598692-15.19108243-14.49172002-151.03375839-143.48407587a11.46496817 11.46496817 0 0 1 6.09936328-19.63949062l205.79617881-32.63503185 20.78598691-3.2961788L428.87898125 380.72038203 518.59235674 192.64331182a11.46496817 11.46496817 0 0 1 20.56815264-0.26369385l94.56879023 185.63503183zM496.64840732 85.52038203l-121.75796162 254.98089229L95.76433145 384.76178369A34.3949045 34.3949045 0 0 0 77.46050938 443.66879023l204.87324901 194.66369385-44.16879023 279.1146498a34.3949045 34.3949045 0 0 0 50.36560489 35.61592325l248.4-134.67898038 251.84522285 128.27579591a34.3949045 34.3949045 0 0 0 49.43694287-36.89426777l-51.30573223-277.85350284 199.73120977-199.90891758a34.3949045 34.3949045 0 0 0-19.82866201-58.40827998l-280.11783428-37.03184736L558.32993633 84.71210205a34.3949045 34.3949045 0 0 0-61.68152901 0.80254775z"
p-id=
"1099"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/row.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1579339929870"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"1182"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M152 854.856875h325.7146875V237.715625H134.856875v600q0 6.99375 5.0746875 12.0684375T152 854.856875z m737.143125-17.1421875v-600H546.284375v617.1421875H872q6.99375 0 12.0684375-5.07375t5.0746875-12.0684375z m68.5715625-651.429375V837.715625q0 35.3821875-25.16625 60.5484375T872 923.4284375H152q-35.383125 0-60.5484375-25.1653125T66.284375 837.7146875V186.284375q0-35.3821875 25.16625-60.5484375T152 100.5715625h720q35.383125 0 60.5484375 25.1653125t25.16625 60.5484375z"
p-id=
"1183"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/select.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1575803481213"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"804"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M62 511.97954521C62 263.86590869 263.90681826 62 511.97954521 62s449.97954521 201.825 449.97954521 449.97954521c0 248.19545479-201.90681826 449.97954521-449.97954521 449.97954521C263.90681826 962 62 760.175 62 511.97954521M901.98636348 511.97954521c0-215.24318174-175.00909131-390.41590869-390.00681827-390.41590869-215.03863652 0-389.96590869 175.17272695-389.96590868 390.41590869 0 215.28409131 175.00909131 390.45681826 389.96590868 390.45681826C727.01818174 902.47727305 901.98636348 727.30454521 901.98636348 511.97954521M264.17272695 430.28409131c0-5.76818174 2.12727305-11.51590869 6.64772696-15.87272696 8.71363652-8.75454521 22.88863652-8.75454521 31.725 0l209.4340913 208.22727305L721.45454521 414.53409131c8.75454521-8.71363652 22.97045479-8.71363652 31.90909132 0 8.71363652 8.75454521 8.71363652 22.88863652 0 31.60227304L511.97954521 685.74090869 270.71818174 446.01363653C266.27954521 441.77954521 264.17272695 436.05227305 264.17272695 430.28409131"
p-id=
"805"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/slider.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1577185310368"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"1238"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M951.453125 476.84375H523.671875a131.8359375 131.8359375 0 0 0-254.1796875 0H72.546875v70.3125h196.9453125a131.8359375 131.8359375 0 0 0 254.1796875 0H951.453125z"
p-id=
"1239"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/switch.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1576042673958"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"1110"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M692 792H332c-150 0-270-120-270-270s120-270 270-270h360c150 0 270 120 270 270 0 147-120 270-270 270zM332 312c-117 0-210 93-210 210s93 210 210 210h360c117 0 210-93 210-210s-93-210-210-210H332z"
p-id=
"1111"
></path><path
d=
"M341 522m-150 0a150 150 0 1 0 300 0 150 150 0 1 0-300 0Z"
p-id=
"1112"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/textarea.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1575802855098"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"2984"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M896 160H128c-35.2 0-64 28.8-64 64v576c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64V224c0-35.2-28.8-64-64-64z m0 608c0 16-12.8 32-32 32H160c-19.2 0-32-12.8-32-32V256c0-16 12.8-32 32-32h704c19.2 0 32 12.8 32 32v512z"
p-id=
"2985"
></path><path
d=
"M224 288c-19.2 0-32 12.8-32 32v256c0 16 12.8 32 32 32s32-12.8 32-32V320c0-16-12.8-32-32-32z m608 480c19.2 0 32-12.8 32-32V608L704 768h128z"
p-id=
"2986"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/time-range.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1579774825624"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"1248"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M498.595712 482.290351 345.420077 482.290351l0 57.307194 210.477712 0L555.897789 274.196942l-57.301054 0L498.596735 482.290351zM498.595712 482.290351"
p-id=
"1249"
></path><path
d=
"M577.685002 644.98478l379.879913 0 0 57.302077L577.685002 702.286858 577.685002 644.98478 577.685002 644.98478zM577.685002 644.98478"
p-id=
"1250"
></path><path
d=
"M577.685002 773.764795l379.879913 0 0 57.307194L577.685002 831.071989 577.685002 773.764795 577.685002 773.764795zM577.685002 773.764795"
p-id=
"1251"
></path><path
d=
"M577.685002 902.549927l379.879913 0 0 57.307194L577.685002 959.857121 577.685002 902.549927 577.685002 902.549927zM577.685002 902.549927"
p-id=
"1252"
></path><path
d=
"M102.523001 382.290823c4.450359 2.615571 9.470699 3.954055 14.530948 3.954055 2.969635 0 5.952572-0.461511 8.836249-1.394766l190.809767-61.886489c15.052834-4.882194 23.297612-21.040199 18.415418-36.08894-4.882194-15.052834-21.040199-23.297612-36.093033-18.415418L175.676092 308.458257c15.994276-26.115797 35.170011-50.537 57.370639-72.743768 73.767074-73.767074 171.845857-114.388237 276.16783-114.388237 104.32095 0 202.39564 40.622186 276.16169 114.388237s114.393353 171.845857 114.393353 276.16783c0 26.427906-2.615571 52.449559-7.709589 77.780481l58.302871 0c4.464685-25.499767 6.708795-51.470255 6.708795-77.780481 0-60.449767-11.845793-119.102608-35.204803-174.336584-22.559808-53.334719-54.850236-101.226472-95.968725-142.349055-41.122583-41.122583-89.017406-73.408917-142.348032-95.968725C628.317169 75.866898 569.659211 64.021106 509.215584 64.021106c-60.448744 0-119.106702 11.845793-174.336584 35.207873-53.334719 22.559808-101.230566 54.846142-142.349055 95.968725-23.980157 23.980157-44.934398 50.278103-62.727647 78.601172l-20.738323-105.655342c-3.043313-15.527648-18.105357-25.642007-33.631982-22.599717-15.527648 3.048429-25.64303 18.105357-22.599717 33.637098l36.102243 183.932126C90.51348 371.153158 95.460142 378.13313 102.523001 382.290823L102.523001 382.290823zM102.523001 382.290823"
p-id=
"1253"
></path><path
d=
"M126.020158 587.9416 67.768453 587.9416c5.759167 33.679054 15.368012 66.544579 28.789697 98.278327 22.559808 53.333696 54.850236 101.225449 95.971795 142.348032 41.122583 41.122583 89.014336 73.408917 142.349055 95.968725 54.112432 22.88829 111.517863 34.71157 170.668031 35.18229L505.547031 902.395408c-102.94972-0.941442-199.594851-41.445948-272.499277-114.349351C177.545672 732.543975 140.810003 663.275355 126.020158 587.9416L126.020158 587.9416zM126.020158 587.9416"
p-id=
"1254"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/time.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1577099827399"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"1008"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M520 559h204c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32H488c-17.673 0-32-14.327-32-32 0-0.167 0.001-0.334 0.004-0.5a32.65 32.65 0 0 1-0.004-0.5V277c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v282z m-8 401C264.576 960 64 759.424 64 512S264.576 64 512 64s448 200.576 448 448-200.576 448-448 448z m0-64c212.077 0 384-171.923 384-384S724.077 128 512 128 128 299.923 128 512s171.923 384 384 384z"
p-id=
"1009"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/assets/icons/svg/upload.svg
0 → 100644
View file @
cb0a4b78
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1577540289643"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"7922"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M530.944 458.24l4.8 3.456 122.176 106.816a32 32 0 0 1-37.44 51.584l-4.672-3.392L546.56 556.16v280.704a32 32 0 0 1-26.24 31.488l-5.76 0.512a32 32 0 0 1-31.424-26.24l-0.512-5.76-0.064-280.704-69.12 60.48a32 32 0 0 1-40.96 0.896l-4.16-3.968a32 32 0 0 1-0.96-40.96l4.032-4.16 122.176-106.816a32 32 0 0 1 37.312-3.456zM497.92 128c128.128 0 239.168 82.304 275.52 199.04 123.968 11.264 221.312 113.088 221.312 237.44 0 128.128-103.68 232.96-234.88 238.272h-5.888l-35.52 0.192a32 32 0 0 1-0.192-64l35.264-0.128 4.672-0.064c96.384-3.84 172.544-80.896 172.544-174.272 0-96.128-80.512-174.464-179.584-174.464h-1.984a32 32 0 0 1-32-25.28C695.872 264.96 604.736 192 497.92 192 381.824 192 285.44 277.76 274.816 388.48a32 32 0 0 1-28.352 28.8c-83.968 9.152-147.84 78.208-147.84 159.552l0.192 7.936c3.84 85.76 77.056 154.112 166.592 154.112h45.632a32 32 0 0 1 0 64h-45.632C142.016 802.944 40.32 708.032 34.88 586.88l-0.192-9.28c0-106.88 76.352-197.184 179.968-219.904C239.488 226.112 357.76 128 497.856 128z"
p-id=
"7923"
></path></svg>
\ No newline at end of file
ruoyi-ui/src/components/RuoYi/Doc/index.vue
0 → 100644
View file @
cb0a4b78
<
template
>
<div>
<svg-icon
icon-class=
"question"
@
click=
"goto"
/>
</div>
</
template
>
<
script
>
export
default
{
name
:
'
RuoYiDoc
'
,
data
()
{
return
{
url
:
'
http://doc.ruoyi.vip/ruoyi-vue
'
}
},
methods
:
{
goto
()
{
window
.
open
(
this
.
url
)
}
}
}
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/RuoYi/index.vue
→
ruoyi-ui/src/components/RuoYi/
Git/
index.vue
View file @
cb0a4b78
<
template
>
<div>
<svg-icon
icon-class=
"
download"
@
click=
"handleDownload
"
/>
<svg-icon
icon-class=
"
github"
@
click=
"goto
"
/>
</div>
</
template
>
<
script
>
export
default
{
name
:
'
RuoYi
'
,
name
:
'
RuoYi
Git
'
,
data
()
{
return
{
url
:
'
https://gitee.com/y_project/RuoYi-Vue
'
}
},
methods
:
{
handleDownload
()
{
goto
()
{
window
.
open
(
this
.
url
)
}
}
...
...
ruoyi-ui/src/layout/components/Navbar.vue
View file @
cb0a4b78
...
...
@@ -8,8 +8,12 @@
<template
v-if=
"device!=='mobile'"
>
<search
id=
"header-search"
class=
"right-menu-item"
/>
<el-tooltip
content=
"下载源码"
effect=
"dark"
placement=
"bottom"
>
<ruo-yi
id=
"ruoyi"
class=
"right-menu-item hover-effect"
/>
<el-tooltip
content=
"源码地址"
effect=
"dark"
placement=
"bottom"
>
<ruo-yi-git
id=
"ruoyi-git"
class=
"right-menu-item hover-effect"
/>
</el-tooltip>
<el-tooltip
content=
"文档地址"
effect=
"dark"
placement=
"bottom"
>
<ruo-yi-doc
id=
"ruoyi-doc"
class=
"right-menu-item hover-effect"
/>
</el-tooltip>
<screenfull
id=
"screenfull"
class=
"right-menu-item hover-effect"
/>
...
...
@@ -48,7 +52,8 @@ import Hamburger from '@/components/Hamburger'
import
Screenfull
from
'
@/components/Screenfull
'
import
SizeSelect
from
'
@/components/SizeSelect
'
import
Search
from
'
@/components/HeaderSearch
'
import
RuoYi
from
'
@/components/RuoYi
'
import
RuoYiGit
from
'
@/components/RuoYi/Git
'
import
RuoYiDoc
from
'
@/components/RuoYi/Doc
'
export
default
{
components
:
{
...
...
@@ -57,7 +62,8 @@ export default {
Screenfull
,
SizeSelect
,
Search
,
RuoYi
RuoYiGit
,
RuoYiDoc
},
computed
:
{
...
mapGetters
([
...
...
ruoyi-ui/src/main.js
View file @
cb0a4b78
...
...
@@ -18,7 +18,7 @@ import './assets/icons' // icon
import
'
./permission
'
// permission control
import
{
getDicts
}
from
"
@/api/system/dict/data
"
;
import
{
getConfigKey
}
from
"
@/api/system/config
"
;
import
{
parseTime
,
resetForm
,
addDateRange
,
selectDictLabel
,
download
}
from
"
@/utils/ruoyi
"
;
import
{
parseTime
,
resetForm
,
addDateRange
,
selectDictLabel
,
download
,
handleTree
}
from
"
@/utils/ruoyi
"
;
import
Pagination
from
"
@/components/Pagination
"
;
// 全局方法挂载
...
...
@@ -29,6 +29,7 @@ Vue.prototype.resetForm = resetForm
Vue
.
prototype
.
addDateRange
=
addDateRange
Vue
.
prototype
.
selectDictLabel
=
selectDictLabel
Vue
.
prototype
.
download
=
download
Vue
.
prototype
.
handleTree
=
handleTree
Vue
.
prototype
.
msgSuccess
=
function
(
msg
)
{
this
.
$message
({
showClose
:
true
,
message
:
msg
,
type
:
"
success
"
});
...
...
ruoyi-ui/src/utils/generator/config.js
0 → 100644
View file @
cb0a4b78
This diff is collapsed.
Click to expand it.
ruoyi-ui/src/utils/generator/css.js
0 → 100644
View file @
cb0a4b78
const
styles
=
{
'
el-rate
'
:
'
.el-rate{display: inline-block; vertical-align: text-top;}
'
,
'
el-upload
'
:
'
.el-upload__tip{line-height: 1.2;}
'
}
function
addCss
(
cssList
,
el
)
{
const
css
=
styles
[
el
.
tag
]
css
&&
cssList
.
indexOf
(
css
)
===
-
1
&&
cssList
.
push
(
css
)
if
(
el
.
children
)
{
el
.
children
.
forEach
(
el2
=>
addCss
(
cssList
,
el2
))
}
}
export
function
makeUpCss
(
conf
)
{
const
cssList
=
[]
conf
.
fields
.
forEach
(
el
=>
addCss
(
cssList
,
el
))
return
cssList
.
join
(
'
\n
'
)
}
ruoyi-ui/src/utils/generator/drawingDefalut.js
0 → 100644
View file @
cb0a4b78
export
default
[
{
layout
:
'
colFormItem
'
,
tagIcon
:
'
input
'
,
label
:
'
手机号
'
,
vModel
:
'
mobile
'
,
formId
:
6
,
tag
:
'
el-input
'
,
placeholder
:
'
请输入手机号
'
,
defaultValue
:
''
,
span
:
24
,
style
:
{
width
:
'
100%
'
},
clearable
:
true
,
prepend
:
''
,
append
:
''
,
'
prefix-icon
'
:
'
el-icon-mobile
'
,
'
suffix-icon
'
:
''
,
maxlength
:
11
,
'
show-word-limit
'
:
true
,
readonly
:
false
,
disabled
:
false
,
required
:
true
,
changeTag
:
true
,
regList
:
[{
pattern
:
'
/^1(3|4|5|7|8|9)
\\
d{9}$/
'
,
message
:
'
手机号格式错误
'
}]
}
]
ruoyi-ui/src/utils/generator/html.js
0 → 100644
View file @
cb0a4b78
This diff is collapsed.
Click to expand it.
ruoyi-ui/src/utils/generator/icon.json
0 → 100644
View file @
cb0a4b78
[
"platform-eleme"
,
"eleme"
,
"delete-solid"
,
"delete"
,
"s-tools"
,
"setting"
,
"user-solid"
,
"user"
,
"phone"
,
"phone-outline"
,
"more"
,
"more-outline"
,
"star-on"
,
"star-off"
,
"s-goods"
,
"goods"
,
"warning"
,
"warning-outline"
,
"question"
,
"info"
,
"remove"
,
"circle-plus"
,
"success"
,
"error"
,
"zoom-in"
,
"zoom-out"
,
"remove-outline"
,
"circle-plus-outline"
,
"circle-check"
,
"circle-close"
,
"s-help"
,
"help"
,
"minus"
,
"plus"
,
"check"
,
"close"
,
"picture"
,
"picture-outline"
,
"picture-outline-round"
,
"upload"
,
"upload2"
,
"download"
,
"camera-solid"
,
"camera"
,
"video-camera-solid"
,
"video-camera"
,
"message-solid"
,
"bell"
,
"s-cooperation"
,
"s-order"
,
"s-platform"
,
"s-fold"
,
"s-unfold"
,
"s-operation"
,
"s-promotion"
,
"s-home"
,
"s-release"
,
"s-ticket"
,
"s-management"
,
"s-open"
,
"s-shop"
,
"s-marketing"
,
"s-flag"
,
"s-comment"
,
"s-finance"
,
"s-claim"
,
"s-custom"
,
"s-opportunity"
,
"s-data"
,
"s-check"
,
"s-grid"
,
"menu"
,
"share"
,
"d-caret"
,
"caret-left"
,
"caret-right"
,
"caret-bottom"
,
"caret-top"
,
"bottom-left"
,
"bottom-right"
,
"back"
,
"right"
,
"bottom"
,
"top"
,
"top-left"
,
"top-right"
,
"arrow-left"
,
"arrow-right"
,
"arrow-down"
,
"arrow-up"
,
"d-arrow-left"
,
"d-arrow-right"
,
"video-pause"
,
"video-play"
,
"refresh"
,
"refresh-right"
,
"refresh-left"
,
"finished"
,
"sort"
,
"sort-up"
,
"sort-down"
,
"rank"
,
"loading"
,
"view"
,
"c-scale-to-original"
,
"date"
,
"edit"
,
"edit-outline"
,
"folder"
,
"folder-opened"
,
"folder-add"
,
"folder-remove"
,
"folder-delete"
,
"folder-checked"
,
"tickets"
,
"document-remove"
,
"document-delete"
,
"document-copy"
,
"document-checked"
,
"document"
,
"document-add"
,
"printer"
,
"paperclip"
,
"takeaway-box"
,
"search"
,
"monitor"
,
"attract"
,
"mobile"
,
"scissors"
,
"umbrella"
,
"headset"
,
"brush"
,
"mouse"
,
"coordinate"
,
"magic-stick"
,
"reading"
,
"data-line"
,
"data-board"
,
"pie-chart"
,
"data-analysis"
,
"collection-tag"
,
"film"
,
"suitcase"
,
"suitcase-1"
,
"receiving"
,
"collection"
,
"files"
,
"notebook-1"
,
"notebook-2"
,
"toilet-paper"
,
"office-building"
,
"school"
,
"table-lamp"
,
"house"
,
"no-smoking"
,
"smoking"
,
"shopping-cart-full"
,
"shopping-cart-1"
,
"shopping-cart-2"
,
"shopping-bag-1"
,
"shopping-bag-2"
,
"sold-out"
,
"sell"
,
"present"
,
"box"
,
"bank-card"
,
"money"
,
"coin"
,
"wallet"
,
"discount"
,
"price-tag"
,
"news"
,
"guide"
,
"male"
,
"female"
,
"thumb"
,
"cpu"
,
"link"
,
"connection"
,
"open"
,
"turn-off"
,
"set-up"
,
"chat-round"
,
"chat-line-round"
,
"chat-square"
,
"chat-dot-round"
,
"chat-dot-square"
,
"chat-line-square"
,
"message"
,
"postcard"
,
"position"
,
"turn-off-microphone"
,
"microphone"
,
"close-notification"
,
"bangzhu"
,
"time"
,
"odometer"
,
"crop"
,
"aim"
,
"switch-button"
,
"full-screen"
,
"copy-document"
,
"mic"
,
"stopwatch"
,
"medal-1"
,
"medal"
,
"trophy"
,
"trophy-1"
,
"first-aid-kit"
,
"discover"
,
"place"
,
"location"
,
"location-outline"
,
"location-information"
,
"add-location"
,
"delete-location"
,
"map-location"
,
"alarm-clock"
,
"timer"
,
"watch-1"
,
"watch"
,
"lock"
,
"unlock"
,
"key"
,
"service"
,
"mobile-phone"
,
"bicycle"
,
"truck"
,
"ship"
,
"basketball"
,
"football"
,
"soccer"
,
"baseball"
,
"wind-power"
,
"light-rain"
,
"lightning"
,
"heavy-rain"
,
"sunrise"
,
"sunrise-1"
,
"sunset"
,
"sunny"
,
"cloudy"
,
"partly-cloudy"
,
"cloudy-and-sunny"
,
"moon"
,
"moon-night"
,
"dish"
,
"dish-1"
,
"food"
,
"chicken"
,
"fork-spoon"
,
"knife-fork"
,
"burger"
,
"tableware"
,
"sugar"
,
"dessert"
,
"ice-cream"
,
"hot-water"
,
"water-cup"
,
"coffee-cup"
,
"cold-drink"
,
"goblet"
,
"goblet-full"
,
"goblet-square"
,
"goblet-square-full"
,
"refrigerator"
,
"grape"
,
"watermelon"
,
"cherry"
,
"apple"
,
"pear"
,
"orange"
,
"coffee"
,
"ice-tea"
,
"ice-drink"
,
"milk-tea"
,
"potato-strips"
,
"lollipop"
,
"ice-cream-square"
,
"ice-cream-round"
]
\ No newline at end of file
ruoyi-ui/src/utils/generator/js.js
0 → 100644
View file @
cb0a4b78
import
{
isArray
}
from
'
util
'
import
{
exportDefault
,
titleCase
}
from
'
@/utils/index
'
import
{
trigger
}
from
'
./config
'
const
units
=
{
KB
:
'
1024
'
,
MB
:
'
1024 / 1024
'
,
GB
:
'
1024 / 1024 / 1024
'
}
let
confGlobal
const
inheritAttrs
=
{
file
:
''
,
dialog
:
'
inheritAttrs: false,
'
}
export
function
makeUpJs
(
conf
,
type
)
{
confGlobal
=
conf
=
JSON
.
parse
(
JSON
.
stringify
(
conf
))
const
dataList
=
[]
const
ruleList
=
[]
const
optionsList
=
[]
const
propsList
=
[]
const
methodList
=
mixinMethod
(
type
)
const
uploadVarList
=
[]
conf
.
fields
.
forEach
(
el
=>
{
buildAttributes
(
el
,
dataList
,
ruleList
,
optionsList
,
methodList
,
propsList
,
uploadVarList
)
})
const
script
=
buildexport
(
conf
,
type
,
dataList
.
join
(
'
\n
'
),
ruleList
.
join
(
'
\n
'
),
optionsList
.
join
(
'
\n
'
),
uploadVarList
.
join
(
'
\n
'
),
propsList
.
join
(
'
\n
'
),
methodList
.
join
(
'
\n
'
)
)
confGlobal
=
null
return
script
}
function
buildAttributes
(
el
,
dataList
,
ruleList
,
optionsList
,
methodList
,
propsList
,
uploadVarList
)
{
buildData
(
el
,
dataList
)
buildRules
(
el
,
ruleList
)
if
(
el
.
options
&&
el
.
options
.
length
)
{
buildOptions
(
el
,
optionsList
)
if
(
el
.
dataType
===
'
dynamic
'
)
{
const
model
=
`
${
el
.
vModel
}
Options`
const
options
=
titleCase
(
model
)
buildOptionMethod
(
`get
${
options
}
`
,
model
,
methodList
)
}
}
if
(
el
.
props
&&
el
.
props
.
props
)
{
buildProps
(
el
,
propsList
)
}
if
(
el
.
action
&&
el
.
tag
===
'
el-upload
'
)
{
uploadVarList
.
push
(
`
${
el
.
vModel
}
Action: '
${
el
.
action
}
',
${
el
.
vModel
}
fileList: [],`
)
methodList
.
push
(
buildBeforeUpload
(
el
))
if
(
!
el
[
'
auto-upload
'
])
{
methodList
.
push
(
buildSubmitUpload
(
el
))
}
}
if
(
el
.
children
)
{
el
.
children
.
forEach
(
el2
=>
{
buildAttributes
(
el2
,
dataList
,
ruleList
,
optionsList
,
methodList
,
propsList
,
uploadVarList
)
})
}
}
function
mixinMethod
(
type
)
{
const
list
=
[];
const
minxins
=
{
file
:
confGlobal
.
formBtns
?
{
submitForm
:
`submitForm() {
this.$refs['
${
confGlobal
.
formRef
}
'].validate(valid => {
if(!valid) return
// TODO 提交表单
})
},`
,
resetForm
:
`resetForm() {
this.$refs['
${
confGlobal
.
formRef
}
'].resetFields()
},`
}
:
null
,
dialog
:
{
onOpen
:
'
onOpen() {},
'
,
onClose
:
`onClose() {
this.$refs['
${
confGlobal
.
formRef
}
'].resetFields()
},`
,
close
:
`close() {
this.$emit('update:visible', false)
},`
,
handelConfirm
:
`handelConfirm() {
this.$refs['
${
confGlobal
.
formRef
}
'].validate(valid => {
if(!valid) return
this.close()
})
},`
}
}
const
methods
=
minxins
[
type
]
if
(
methods
)
{
Object
.
keys
(
methods
).
forEach
(
key
=>
{
list
.
push
(
methods
[
key
])
})
}
return
list
}
function
buildData
(
conf
,
dataList
)
{
if
(
conf
.
vModel
===
undefined
)
return
let
defaultValue
if
(
typeof
(
conf
.
defaultValue
)
===
'
string
'
&&
!
conf
.
multiple
)
{
defaultValue
=
`'
${
conf
.
defaultValue
}
'`
}
else
{
defaultValue
=
`
${
JSON
.
stringify
(
conf
.
defaultValue
)}
`
}
dataList
.
push
(
`
${
conf
.
vModel
}
:
${
defaultValue
}
,`
)
}
function
buildRules
(
conf
,
ruleList
)
{
if
(
conf
.
vModel
===
undefined
)
return
const
rules
=
[]
if
(
trigger
[
conf
.
tag
])
{
if
(
conf
.
required
)
{
const
type
=
isArray
(
conf
.
defaultValue
)
?
'
type:
\'
array
\'
,
'
:
''
let
message
=
isArray
(
conf
.
defaultValue
)
?
`请至少选择一个
${
conf
.
vModel
}
`
:
conf
.
placeholder
if
(
message
===
undefined
)
message
=
`
${
conf
.
label
}
不能为空`
rules
.
push
(
`{ required: true,
${
type
}
message: '
${
message
}
', trigger: '
${
trigger
[
conf
.
tag
]}
' }`
)
}
if
(
conf
.
regList
&&
isArray
(
conf
.
regList
))
{
conf
.
regList
.
forEach
(
item
=>
{
if
(
item
.
pattern
)
{
rules
.
push
(
`{ pattern:
${
eval
(
item
.
pattern
)}
, message: '
${
item
.
message
}
', trigger: '
${
trigger
[
conf
.
tag
]}
' }`
)
}
})
}
ruleList
.
push
(
`
${
conf
.
vModel
}
: [
${
rules
.
join
(
'
,
'
)}
],`
)
}
}
function
buildOptions
(
conf
,
optionsList
)
{
if
(
conf
.
vModel
===
undefined
)
return
if
(
conf
.
dataType
===
'
dynamic
'
)
{
conf
.
options
=
[]
}
const
str
=
`
${
conf
.
vModel
}
Options:
${
JSON
.
stringify
(
conf
.
options
)}
,`
optionsList
.
push
(
str
)
}
function
buildProps
(
conf
,
propsList
)
{
if
(
conf
.
dataType
===
'
dynamic
'
)
{
conf
.
valueKey
!==
'
value
'
&&
(
conf
.
props
.
props
.
value
=
conf
.
valueKey
)
conf
.
labelKey
!==
'
label
'
&&
(
conf
.
props
.
props
.
label
=
conf
.
labelKey
)
conf
.
childrenKey
!==
'
children
'
&&
(
conf
.
props
.
props
.
children
=
conf
.
childrenKey
)
}
const
str
=
`
${
conf
.
vModel
}
Props:
${
JSON
.
stringify
(
conf
.
props
.
props
)}
,`
propsList
.
push
(
str
)
}
function
buildBeforeUpload
(
conf
)
{
const
unitNum
=
units
[
conf
.
sizeUnit
];
let
rightSizeCode
=
''
;
let
acceptCode
=
''
;
const
returnList
=
[]
if
(
conf
.
fileSize
)
{
rightSizeCode
=
`let isRightSize = file.size /
${
unitNum
}
<
${
conf
.
fileSize
}
if(!isRightSize){
this.$message.error('文件大小超过
${
conf
.
fileSize
}${
conf
.
sizeUnit
}
')
}`
returnList
.
push
(
'
isRightSize
'
)
}
if
(
conf
.
accept
)
{
acceptCode
=
`let isAccept = new RegExp('
${
conf
.
accept
}
').test(file.type)
if(!isAccept){
this.$message.error('应该选择
${
conf
.
accept
}
类型的文件')
}`
returnList
.
push
(
'
isAccept
'
)
}
const
str
=
`
${
conf
.
vModel
}
BeforeUpload(file) {
${
rightSizeCode
}
${
acceptCode
}
return
${
returnList
.
join
(
'
&&
'
)}
},`
return
returnList
.
length
?
str
:
''
}
function
buildSubmitUpload
(
conf
)
{
const
str
=
`submitUpload() {
this.$refs['
${
conf
.
vModel
}
'].submit()
},`
return
str
}
function
buildOptionMethod
(
methodName
,
model
,
methodList
)
{
const
str
=
`
${
methodName
}
() {
// TODO 发起请求获取数据
this.
${
model
}
},`
methodList
.
push
(
str
)
}
function
buildexport
(
conf
,
type
,
data
,
rules
,
selectOptions
,
uploadVar
,
props
,
methods
)
{
const
str
=
`
${
exportDefault
}
{
${
inheritAttrs
[
type
]}
components: {},
props: [],
data () {
return {
${
conf
.
formModel
}
: {
${
data
}
},
${
conf
.
formRules
}
: {
${
rules
}
},
${
uploadVar
}
${
selectOptions
}
${
props
}
}
},
computed: {},
watch: {},
created () {},
mounted () {},
methods: {
${
methods
}
}
}`
return
str
}
ruoyi-ui/src/utils/generator/render.js
0 → 100644
View file @
cb0a4b78
import
{
makeMap
}
from
'
@/utils/index
'
// 参考https://github.com/vuejs/vue/blob/v2.6.10/src/platforms/web/server/util.js
const
isAttr
=
makeMap
(
'
accept,accept-charset,accesskey,action,align,alt,async,autocomplete,
'
+
'
autofocus,autoplay,autosave,bgcolor,border,buffered,challenge,charset,
'
+
'
checked,cite,class,code,codebase,color,cols,colspan,content,http-equiv,
'
+
'
name,contenteditable,contextmenu,controls,coords,data,datetime,default,
'
+
'
defer,dir,dirname,disabled,download,draggable,dropzone,enctype,method,for,
'
+
'
form,formaction,headers,height,hidden,high,href,hreflang,http-equiv,
'
+
'
icon,id,ismap,itemprop,keytype,kind,label,lang,language,list,loop,low,
'
+
'
manifest,max,maxlength,media,method,GET,POST,min,multiple,email,file,
'
+
'
muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,
'
+
'
preload,radiogroup,readonly,rel,required,reversed,rows,rowspan,sandbox,
'
+
'
scope,scoped,seamless,selected,shape,size,type,text,password,sizes,span,
'
+
'
spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,
'
+
'
target,title,type,usemap,value,width,wrap
'
)
function
vModel
(
self
,
dataObject
,
defaultValue
)
{
dataObject
.
props
.
value
=
defaultValue
dataObject
.
on
.
input
=
val
=>
{
self
.
$emit
(
'
input
'
,
val
)
}
}
const
componentChild
=
{
'
el-input
'
:
{
prepend
(
h
,
conf
,
key
)
{
return
<
template
slot
=
"
prepend
"
>
{
conf
[
key
]}
<
/template>
},
append
(
h
,
conf
,
key
)
{
return
<
template
slot
=
"
append
"
>
{
conf
[
key
]}
<
/template>
}
},
'
el-select
'
:
{
options
(
h
,
conf
,
key
)
{
const
list
=
[]
conf
.
options
.
forEach
(
item
=>
{
list
.
push
(
<
el
-
option
label
=
{
item
.
label
}
value
=
{
item
.
value
}
disabled
=
{
item
.
disabled
}
><
/el-option>
)
})
return
list
}
},
'
el-radio-group
'
:
{
options
(
h
,
conf
,
key
)
{
const
list
=
[]
conf
.
options
.
forEach
(
item
=>
{
if
(
conf
.
optionType
===
'
button
'
)
list
.
push
(
<
el
-
radio
-
button
label
=
{
item
.
value
}
>
{
item
.
label
}
<
/el-radio-button>
)
else
list
.
push
(
<
el
-
radio
label
=
{
item
.
value
}
border
=
{
conf
.
border
}
>
{
item
.
label
}
<
/el-radio>
)
})
return
list
}
},
'
el-checkbox-group
'
:
{
options
(
h
,
conf
,
key
)
{
const
list
=
[]
conf
.
options
.
forEach
(
item
=>
{
if
(
conf
.
optionType
===
'
button
'
)
{
list
.
push
(
<
el
-
checkbox
-
button
label
=
{
item
.
value
}
>
{
item
.
label
}
<
/el-checkbox-button>
)
}
else
{
list
.
push
(
<
el
-
checkbox
label
=
{
item
.
value
}
border
=
{
conf
.
border
}
>
{
item
.
label
}
<
/el-checkbox>
)
}
})
return
list
}
},
'
el-upload
'
:
{
'
list-type
'
:
(
h
,
conf
,
key
)
=>
{
const
list
=
[]
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>
)
}
if
(
conf
.
showTip
)
{
list
.
push
(
<
div
slot
=
"
tip
"
class
=
"
el-upload__tip
"
>
只能上传不超过
{
conf
.
fileSize
}{
conf
.
sizeUnit
}
的
{
conf
.
accept
}
文件
<
/div>
)
}
return
list
}
}
}
export
default
{
render
(
h
)
{
const
dataObject
=
{
attrs
:
{},
props
:
{},
on
:
{},
style
:
{}
}
const
confClone
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
conf
))
const
children
=
[]
const
childObjs
=
componentChild
[
confClone
.
tag
]
if
(
childObjs
)
{
Object
.
keys
(
childObjs
).
forEach
(
key
=>
{
const
childFunc
=
childObjs
[
key
]
if
(
confClone
[
key
])
{
children
.
push
(
childFunc
(
h
,
confClone
,
key
))
}
})
}
Object
.
keys
(
confClone
).
forEach
(
key
=>
{
const
val
=
confClone
[
key
]
if
(
key
===
'
vModel
'
)
{
vModel
(
this
,
dataObject
,
confClone
.
defaultValue
)
}
else
if
(
dataObject
[
key
])
{
dataObject
[
key
]
=
val
}
else
if
(
!
isAttr
(
key
))
{
dataObject
.
props
[
key
]
=
val
}
else
{
dataObject
.
attrs
[
key
]
=
val
}
})
return
h
(
this
.
conf
.
tag
,
dataObject
,
children
)
},
props
:
[
'
conf
'
]
}
ruoyi-ui/src/utils/index.js
View file @
cb0a4b78
...
...
@@ -315,3 +315,72 @@ export function removeClass(ele, cls) {
ele
.
className
=
ele
.
className
.
replace
(
reg
,
'
'
)
}
}
export
function
makeMap
(
str
,
expectsLowerCase
)
{
const
map
=
Object
.
create
(
null
)
const
list
=
str
.
split
(
'
,
'
)
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
)
{
map
[
list
[
i
]]
=
true
}
return
expectsLowerCase
?
val
=>
map
[
val
.
toLowerCase
()]
:
val
=>
map
[
val
]
}
export
const
exportDefault
=
'
export default
'
export
const
beautifierConf
=
{
html
:
{
indent_size
:
'
2
'
,
indent_char
:
'
'
,
max_preserve_newlines
:
'
-1
'
,
preserve_newlines
:
false
,
keep_array_indentation
:
false
,
break_chained_methods
:
false
,
indent_scripts
:
'
separate
'
,
brace_style
:
'
end-expand
'
,
space_before_conditional
:
true
,
unescape_strings
:
false
,
jslint_happy
:
false
,
end_with_newline
:
true
,
wrap_line_length
:
'
110
'
,
indent_inner_html
:
true
,
comma_first
:
false
,
e4x
:
true
,
indent_empty_lines
:
true
},
js
:
{
indent_size
:
'
2
'
,
indent_char
:
'
'
,
max_preserve_newlines
:
'
-1
'
,
preserve_newlines
:
false
,
keep_array_indentation
:
false
,
break_chained_methods
:
false
,
indent_scripts
:
'
normal
'
,
brace_style
:
'
end-expand
'
,
space_before_conditional
:
true
,
unescape_strings
:
false
,
jslint_happy
:
true
,
end_with_newline
:
true
,
wrap_line_length
:
'
110
'
,
indent_inner_html
:
true
,
comma_first
:
false
,
e4x
:
true
,
indent_empty_lines
:
true
}
}
// 首字母大小
export
function
titleCase
(
str
)
{
return
str
.
replace
(
/
(
|^
)[
a-z
]
/g
,
L
=>
L
.
toUpperCase
())
}
// 下划转驼峰
export
function
camelCase
(
str
)
{
return
str
.
replace
(
/-
[
a-z
]
/g
,
str1
=>
str1
.
substr
(
-
1
).
toUpperCase
())
}
export
function
isNumberStr
(
str
)
{
return
/^
[
+-
]?(
0|
([
1-9
]\d
*
))(\.\d
+
)?
$/g
.
test
(
str
)
}
\ No newline at end of file
ruoyi-ui/src/utils/permission.js
View file @
cb0a4b78
import
store
from
'
@/store
'
/**
* @param {Array} value
* 字符权限校验
* @param {Array} value 校验值
* @returns {Boolean}
*/
export
default
function
checkPermission
(
value
)
{
export
function
checkPermi
(
value
)
{
if
(
value
&&
value
instanceof
Array
&&
value
.
length
>
0
)
{
const
permissions
=
store
.
getters
&&
store
.
getters
.
permissions
const
permissionDatas
=
value
const
hasPermission
=
permissions
.
some
(
permission
=>
{
return
permissionDatas
.
includes
(
permission
)
})
if
(
!
hasPermission
)
{
return
false
}
return
true
}
else
{
console
.
error
(
`need roles! Like checkPermi="['system:user:add','system:user:edit']"`
)
return
false
}
}
/**
* 角色权限校验
* @param {Array} value 校验值
* @returns {Boolean}
*/
export
function
checkRole
(
value
)
{
if
(
value
&&
value
instanceof
Array
&&
value
.
length
>
0
)
{
const
roles
=
store
.
getters
&&
store
.
getters
.
roles
const
permissionRoles
=
value
const
has
Permission
=
roles
.
some
(
role
=>
{
const
has
Role
=
roles
.
some
(
role
=>
{
return
permissionRoles
.
includes
(
role
)
})
if
(
!
has
Permission
)
{
if
(
!
has
Role
)
{
return
false
}
return
true
}
else
{
console
.
error
(
`need roles! Like
v-permission
="['admin','editor']"`
)
console
.
error
(
`need roles! Like
checkRole
="['admin','editor']"`
)
return
false
}
}
}
\ No newline at end of file
ruoyi-ui/src/utils/ruoyi.js
View file @
cb0a4b78
...
...
@@ -100,4 +100,33 @@ export function praseStrEmpty(str) {
return
""
;
}
return
str
;
}
\ No newline at end of file
}
/**
* 构造树型结构数据
* @param {*} data 数据源
* @param {*} id id字段 默认 'id'
* @param {*} parentId 父节点字段 默认 'parentId'
* @param {*} children 孩子节点字段 默认 'children'
* @param {*} rootId 根Id 默认 0
*/
export
function
handleTree
(
data
,
id
,
parentId
,
children
,
rootId
)
{
id
=
id
||
'
id
'
parentId
=
parentId
||
'
parentId
'
children
=
children
||
'
children
'
rootId
=
rootId
||
0
//对源数据深度克隆
const
cloneData
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
//循环所有项
const
treeData
=
cloneData
.
filter
(
father
=>
{
let
branchArr
=
cloneData
.
filter
(
child
=>
{
//返回每一项的子级数组
return
father
[
id
]
===
child
[
parentId
]
});
branchArr
.
length
>
0
?
father
.
children
=
branchArr
:
''
;
//返回第一层
return
father
[
parentId
]
===
rootId
;
});
return
treeData
!=
''
?
treeData
:
data
;
}
\ No newline at end of file
ruoyi-ui/src/views/system/dept/index.vue
View file @
cb0a4b78
...
...
@@ -88,7 +88,7 @@
<el-row>
<el-col
:span=
"24"
v-if=
"form.parentId !== 0"
>
<el-form-item
label=
"上级部门"
prop=
"parentId"
>
<treeselect
v-model=
"form.parentId"
:options=
"deptOptions"
placeholder=
"选择上级部门"
/>
<treeselect
v-model=
"form.parentId"
:options=
"deptOptions"
:normalizer=
"normalizer"
placeholder=
"选择上级部门"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
...
...
@@ -138,7 +138,7 @@
</template>
<
script
>
import
{
listDept
,
getDept
,
treeselect
,
delDept
,
addDept
,
updateDept
}
from
"
@/api/system/dept
"
;
import
{
listDept
,
getDept
,
delDept
,
addDept
,
updateDept
}
from
"
@/api/system/dept
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
import
"
@riophae/vue-treeselect/dist/vue-treeselect.css
"
;
...
...
@@ -205,14 +205,25 @@ export default {
getList
()
{
this
.
loading
=
true
;
listDept
(
this
.
queryParams
).
then
(
response
=>
{
this
.
deptList
=
response
.
data
;
this
.
deptList
=
this
.
handleTree
(
response
.
data
,
"
deptId
"
)
;
this
.
loading
=
false
;
});
},
/** 转换部门数据结构 */
normalizer
(
node
)
{
if
(
node
.
children
&&
!
node
.
children
.
length
)
{
delete
node
.
children
;
}
return
{
id
:
node
.
deptId
,
label
:
node
.
deptName
,
children
:
node
.
children
};
},
/** 查询部门下拉树结构 */
getTreeselect
()
{
treeselec
t
().
then
(
response
=>
{
this
.
deptOptions
=
response
.
data
;
listDep
t
().
then
(
response
=>
{
this
.
deptOptions
=
this
.
handleTree
(
response
.
data
,
"
deptId
"
)
;
});
},
// 字典状态字典翻译
...
...
ruoyi-ui/src/views/system/menu/index.vue
View file @
cb0a4b78
...
...
@@ -82,6 +82,7 @@
<treeselect
v-model=
"form.parentId"
:options=
"menuOptions"
:normalizer=
"normalizer"
:show-count=
"true"
placeholder=
"选择上级菜单"
/>
...
...
@@ -173,7 +174,7 @@
</template>
<
script
>
import
{
listMenu
,
getMenu
,
treeselect
,
delMenu
,
addMenu
,
updateMenu
}
from
"
@/api/system/menu
"
;
import
{
listMenu
,
getMenu
,
delMenu
,
addMenu
,
updateMenu
}
from
"
@/api/system/menu
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
import
"
@riophae/vue-treeselect/dist/vue-treeselect.css
"
;
import
IconSelect
from
"
@/components/IconSelect
"
;
...
...
@@ -228,16 +229,27 @@ export default {
getList
()
{
this
.
loading
=
true
;
listMenu
(
this
.
queryParams
).
then
(
response
=>
{
this
.
menuList
=
response
.
data
;
this
.
menuList
=
this
.
handleTree
(
response
.
data
,
"
menuId
"
)
;
this
.
loading
=
false
;
});
},
/** 转换菜单数据结构 */
normalizer
(
node
)
{
if
(
node
.
children
&&
!
node
.
children
.
length
)
{
delete
node
.
children
;
}
return
{
id
:
node
.
menuId
,
label
:
node
.
menuName
,
children
:
node
.
children
};
},
/** 查询菜单下拉树结构 */
getTreeselect
()
{
treeselect
().
then
(
response
=>
{
listMenu
().
then
(
response
=>
{
this
.
menuOptions
=
[];
const
menu
=
{
id
:
0
,
label
:
'
主类目
'
,
children
:
[]
};
menu
.
children
=
response
.
data
;
const
menu
=
{
menuId
:
0
,
menuName
:
'
主类目
'
,
children
:
[]
};
menu
.
children
=
this
.
handleTree
(
response
.
data
,
"
menuId
"
)
;
this
.
menuOptions
.
push
(
menu
);
});
},
...
...
ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue
0 → 100644
View file @
cb0a4b78
<
template
>
<div>
<el-dialog
v-bind=
"$attrs"
width=
"500px"
:close-on-click-modal=
"false"
:modal-append-to-body=
"false"
v-on=
"$listeners"
@
open=
"onOpen"
@
close=
"onClose"
>
<el-row
:gutter=
"15"
>
<el-form
ref=
"elForm"
:model=
"formData"
:rules=
"rules"
size=
"medium"
label-width=
"100px"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"生成类型"
prop=
"type"
>
<el-radio-group
v-model=
"formData.type"
>
<el-radio-button
v-for=
"(item, index) in typeOptions"
:key=
"index"
:label=
"item.value"
:disabled=
"item.disabled"
>
{{
item
.
label
}}
</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item
v-if=
"showFileName"
label=
"文件名"
prop=
"fileName"
>
<el-input
v-model=
"formData.fileName"
placeholder=
"请输入文件名"
clearable
/>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div
slot=
"footer"
>
<el-button
@
click=
"close"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handelConfirm"
>
确定
</el-button>
</div>
</el-dialog>
</div>
</
template
>
<
script
>
export
default
{
inheritAttrs
:
false
,
props
:
[
'
showFileName
'
],
data
()
{
return
{
formData
:
{
fileName
:
undefined
,
type
:
'
file
'
},
rules
:
{
fileName
:
[{
required
:
true
,
message
:
'
请输入文件名
'
,
trigger
:
'
blur
'
}],
type
:
[{
required
:
true
,
message
:
'
生成类型不能为空
'
,
trigger
:
'
change
'
}]
},
typeOptions
:
[{
label
:
'
页面
'
,
value
:
'
file
'
},
{
label
:
'
弹窗
'
,
value
:
'
dialog
'
}]
}
},
computed
:
{
},
watch
:
{},
mounted
()
{},
methods
:
{
onOpen
()
{
if
(
this
.
showFileName
)
{
this
.
formData
.
fileName
=
`
${
+
new
Date
()}
.vue`
}
},
onClose
()
{
},
close
(
e
)
{
this
.
$emit
(
'
update:visible
'
,
false
)
},
handelConfirm
()
{
this
.
$refs
.
elForm
.
validate
(
valid
=>
{
if
(
!
valid
)
return
this
.
$emit
(
'
confirm
'
,
{
...
this
.
formData
})
this
.
close
()
})
}
}
}
</
script
>
ruoyi-ui/src/views/tool/build/DraggableItem.vue
0 → 100644
View file @
cb0a4b78
<
script
>
import
draggable
from
'
vuedraggable
'
import
render
from
'
@/utils/generator/render
'
const
components
=
{
itemBtns
(
h
,
element
,
index
,
parent
)
{
const
{
copyItem
,
deleteItem
}
=
this
.
$listeners
return
[
<
span
class
=
"
drawing-item-copy
"
title
=
"
复制
"
onClick
=
{
event
=>
{
copyItem
(
element
,
parent
);
event
.
stopPropagation
()
}}
>
<
i
class
=
"
el-icon-copy-document
"
/>
<
/span>,
<
span
class
=
"
drawing-item-delete
"
title
=
"
删除
"
onClick
=
{
event
=>
{
deleteItem
(
index
,
parent
);
event
.
stopPropagation
()
}}
>
<
i
class
=
"
el-icon-delete
"
/>
<
/span>
]
}
}
const
layouts
=
{
colFormItem
(
h
,
element
,
index
,
parent
)
{
const
{
activeItem
}
=
this
.
$listeners
let
className
=
this
.
activeId
===
element
.
formId
?
'
drawing-item active-from-item
'
:
'
drawing-item
'
if
(
this
.
formConf
.
unFocusedComponentBorder
)
className
+=
'
unfocus-bordered
'
return
(
<
el
-
col
span
=
{
element
.
span
}
class
=
{
className
}
nativeOnClick
=
{
event
=>
{
activeItem
(
element
);
event
.
stopPropagation
()
}}
>
<
el
-
form
-
item
label
-
width
=
{
element
.
labelWidth
?
`
${
element
.
labelWidth
}
px`
:
null
}
label
=
{
element
.
label
}
required
=
{
element
.
required
}
>
<
render
key
=
{
element
.
renderKey
}
conf
=
{
element
}
onInput
=
{
event
=>
{
this
.
$set
(
element
,
'
defaultValue
'
,
event
)
}}
/>
<
/el-form-item>
{
components
.
itemBtns
.
apply
(
this
,
arguments
)}
<
/el-col>
)
},
rowFormItem
(
h
,
element
,
index
,
parent
)
{
const
{
activeItem
}
=
this
.
$listeners
const
className
=
this
.
activeId
===
element
.
formId
?
'
drawing-row-item active-from-item
'
:
'
drawing-row-item
'
let
child
=
renderChildren
.
apply
(
this
,
arguments
)
if
(
element
.
type
===
'
flex
'
)
{
child
=
<
el
-
row
type
=
{
element
.
type
}
justify
=
{
element
.
justify
}
align
=
{
element
.
align
}
>
{
child
}
<
/el-row>
}
return
(
<
el
-
col
span
=
{
element
.
span
}
>
<
el
-
row
gutter
=
{
element
.
gutter
}
class
=
{
className
}
nativeOnClick
=
{
event
=>
{
activeItem
(
element
);
event
.
stopPropagation
()
}}
>
<
span
class
=
"
component-name
"
>
{
element
.
componentName
}
<
/span>
<
draggable
list
=
{
element
.
children
}
animation
=
{
340
}
group
=
"
componentsGroup
"
class
=
"
drag-wrapper
"
>
{
child
}
<
/draggable>
{
components
.
itemBtns
.
apply
(
this
,
arguments
)}
<
/el-row>
<
/el-col>
)
}
}
function
renderChildren
(
h
,
element
,
index
,
parent
)
{
if
(
!
Array
.
isArray
(
element
.
children
))
return
null
return
element
.
children
.
map
((
el
,
i
)
=>
{
const
layout
=
layouts
[
el
.
layout
]
if
(
layout
)
{
return
layout
.
call
(
this
,
h
,
el
,
i
,
element
.
children
)
}
return
layoutIsNotFound
()
})
}
function
layoutIsNotFound
()
{
throw
new
Error
(
`没有与
${
this
.
element
.
layout
}
匹配的layout`
)
}
export
default
{
components
:
{
render
,
draggable
},
props
:
[
'
element
'
,
'
index
'
,
'
drawingList
'
,
'
activeId
'
,
'
formConf
'
],
render
(
h
)
{
const
layout
=
layouts
[
this
.
element
.
layout
]
if
(
layout
)
{
return
layout
.
call
(
this
,
h
,
this
.
element
,
this
.
index
,
this
.
drawingList
)
}
return
layoutIsNotFound
()
}
}
</
script
>
ruoyi-ui/src/views/tool/build/IconsDialog.vue
0 → 100644
View file @
cb0a4b78
<
template
>
<div
class=
"icon-dialog"
>
<el-dialog
v-bind=
"$attrs"
width=
"980px"
:modal-append-to-body=
"false"
v-on=
"$listeners"
@
open=
"onOpen"
@
close=
"onClose"
>
<div
slot=
"title"
>
选择图标
<el-input
v-model=
"key"
size=
"mini"
:style=
"
{width: '260px'}"
placeholder="请输入图标名称"
prefix-icon="el-icon-search"
clearable
/>
</div>
<ul
class=
"icon-ul"
>
<li
v-for=
"icon in iconList"
:key=
"icon"
:class=
"active===icon?'active-item':''"
@
click=
"onSelect(icon)"
>
<i
:class=
"icon"
/>
<div>
{{
icon
}}
</div>
</li>
</ul>
</el-dialog>
</div>
</
template
>
<
script
>
import
iconList
from
'
@/utils/generator/icon.json
'
const
originList
=
iconList
.
map
(
name
=>
`el-icon-
${
name
}
`
)
export
default
{
inheritAttrs
:
false
,
props
:
[
'
current
'
],
data
()
{
return
{
iconList
:
originList
,
active
:
null
,
key
:
''
}
},
watch
:
{
key
(
val
)
{
if
(
val
)
{
this
.
iconList
=
originList
.
filter
(
name
=>
name
.
indexOf
(
val
)
>
-
1
)
}
else
{
this
.
iconList
=
originList
}
}
},
methods
:
{
onOpen
()
{
this
.
active
=
this
.
current
this
.
key
=
''
},
onClose
()
{},
onSelect
(
icon
)
{
this
.
active
=
icon
this
.
$emit
(
'
select
'
,
icon
)
this
.
$emit
(
'
update:visible
'
,
false
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.icon-ul
{
margin
:
0
;
padding
:
0
;
font-size
:
0
;
li
{
list-style-type
:
none
;
text-align
:
center
;
font-size
:
14px
;
display
:
inline-block
;
width
:
16
.66%
;
box-sizing
:
border-box
;
height
:
108px
;
padding
:
15px
6px
6px
6px
;
cursor
:
pointer
;
overflow
:
hidden
;
&
:hover
{
background
:
#f2f2f2
;
}
&
.active-item
{
background
:
#e1f3fb
;
color
:
#7a6df0
}
>
i
{
font-size
:
30px
;
line-height
:
50px
;
}
}
}
.icon-dialog
{
::v-deep
.el-dialog
{
border-radius
:
8px
;
margin-bottom
:
0
;
margin-top
:
4vh
!
important
;
display
:
flex
;
flex-direction
:
column
;
max-height
:
92vh
;
overflow
:
hidden
;
box-sizing
:
border-box
;
.el-dialog__header
{
padding-top
:
14px
;
}
.el-dialog__body
{
margin
:
0
20px
20px
20px
;
padding
:
0
;
overflow
:
auto
;
}
}
}
</
style
>
ruoyi-ui/src/views/tool/build/RightPanel.vue
0 → 100644
View file @
cb0a4b78
This diff is collapsed.
Click to expand it.
ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue
0 → 100644
View file @
cb0a4b78
<
template
>
<div>
<el-dialog
v-bind=
"$attrs"
:close-on-click-modal=
"false"
:modal-append-to-body=
"false"
v-on=
"$listeners"
@
open=
"onOpen"
@
close=
"onClose"
>
<el-row
:gutter=
"0"
>
<el-form
ref=
"elForm"
:model=
"formData"
:rules=
"rules"
size=
"small"
label-width=
"100px"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"选项名"
prop=
"label"
>
<el-input
v-model=
"formData.label"
placeholder=
"请输入选项名"
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"选项值"
prop=
"value"
>
<el-input
v-model=
"formData.value"
placeholder=
"请输入选项值"
clearable
>
<el-select
slot=
"append"
v-model=
"dataType"
:style=
"
{width: '100px'}"
>
<el-option
v-for=
"(item, index) in dataTypeOptions"
:key=
"index"
:label=
"item.label"
:value=
"item.value"
:disabled=
"item.disabled"
/>
</el-select>
</el-input>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div
slot=
"footer"
>
<el-button
type=
"primary"
@
click=
"handelConfirm"
>
确定
</el-button>
<el-button
@
click=
"close"
>
取消
</el-button>
</div>
</el-dialog>
</div>
</
template
>
<
script
>
import
{
isNumberStr
}
from
'
@/utils/index
'
export
default
{
components
:
{},
inheritAttrs
:
false
,
props
:
[],
data
()
{
return
{
id
:
100
,
formData
:
{
label
:
undefined
,
value
:
undefined
},
rules
:
{
label
:
[
{
required
:
true
,
message
:
'
请输入选项名
'
,
trigger
:
'
blur
'
}
],
value
:
[
{
required
:
true
,
message
:
'
请输入选项值
'
,
trigger
:
'
blur
'
}
]
},
dataType
:
'
string
'
,
dataTypeOptions
:
[
{
label
:
'
字符串
'
,
value
:
'
string
'
},
{
label
:
'
数字
'
,
value
:
'
number
'
}
]
}
},
computed
:
{},
watch
:
{
// eslint-disable-next-line func-names
'
formData.value
'
:
function
(
val
)
{
this
.
dataType
=
isNumberStr
(
val
)
?
'
number
'
:
'
string
'
}
},
created
()
{},
mounted
()
{},
methods
:
{
onOpen
()
{
this
.
formData
=
{
label
:
undefined
,
value
:
undefined
}
},
onClose
()
{},
close
()
{
this
.
$emit
(
'
update:visible
'
,
false
)
},
handelConfirm
()
{
this
.
$refs
.
elForm
.
validate
(
valid
=>
{
if
(
!
valid
)
return
if
(
this
.
dataType
===
'
number
'
)
{
this
.
formData
.
value
=
parseFloat
(
this
.
formData
.
value
)
}
this
.
formData
.
id
=
this
.
id
++
this
.
$emit
(
'
commit
'
,
this
.
formData
)
this
.
close
()
})
}
}
}
</
script
>
ruoyi-ui/src/views/tool/build/index.vue
View file @
cb0a4b78
This diff is collapsed.
Click to expand it.
ruoyi-ui/src/views/tool/gen/genInfoForm.vue
View file @
cb0a4b78
...
...
@@ -6,7 +6,7 @@
<span
slot=
"label"
>
生成模板
</span>
<el-select
v-model=
"info.tplCategory"
>
<el-option
label=
"单表(增删改查)"
value=
"crud"
/>
<el-option
label=
"树表(增删改查)"
value=
"tree"
disabled
/>
<el-option
label=
"树表(增删改查)"
value=
"tree"
/>
</el-select>
</el-form-item>
</el-col>
...
...
ruoyi/pom.xml
View file @
cb0a4b78
...
...
@@ -5,7 +5,7 @@
<groupId>
com.ruoyi
</groupId>
<artifactId>
ruoyi
</artifactId>
<version>
2.
0
.0
</version>
<version>
2.
1
.0
</version>
<packaging>
jar
</packaging>
<name>
ruoyi
</name>
...
...
@@ -43,14 +43,6 @@
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter
</artifactId>
<!--
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
-->
</dependency>
<!-- SpringBoot 测试 -->
...
...
ruoyi/src/main/java/com/ruoyi/common/constant/GenConstants.java
View file @
cb0a4b78
...
...
@@ -48,7 +48,7 @@ public class GenConstants
public
static
final
String
[]
BASE_ENTITY
=
{
"createBy"
,
"createTime"
,
"updateBy"
,
"updateTime"
,
"remark"
};
/** Tree基类字段 */
public
static
final
String
[]
TREE_ENTITY
=
{
"parentName"
,
"parentId"
,
"orderNum"
,
"ancestors"
};
public
static
final
String
[]
TREE_ENTITY
=
{
"parentName"
,
"parentId"
,
"orderNum"
,
"ancestors"
,
"children"
};
/** 文本框 */
public
static
final
String
HTML_INPUT
=
"input"
;
...
...
ruoyi/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java
View file @
cb0a4b78
...
...
@@ -144,7 +144,7 @@ public class EscapeUtil
public
static
void
main
(
String
[]
args
)
{
String
html
=
"
<script>alert(1);</script>
"
;
String
html
=
"
alert('11111');
"
;
System
.
out
.
println
(
EscapeUtil
.
clean
(
html
));
System
.
out
.
println
(
EscapeUtil
.
escape
(
html
));
System
.
out
.
println
(
EscapeUtil
.
unescape
(
html
));
...
...
ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeEntity.java
0 → 100644
View file @
cb0a4b78
package
com.ruoyi.framework.web.domain
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Tree基类
*
* @author ruoyi
*/
public
class
TreeEntity
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** 父菜单名称 */
private
String
parentName
;
/** 父菜单ID */
private
Long
parentId
;
/** 显示顺序 */
private
Integer
orderNum
;
/** 祖级列表 */
private
String
ancestors
;
/** 子部门 */
private
List
<?>
children
=
new
ArrayList
<>();
public
String
getParentName
()
{
return
parentName
;
}
public
void
setParentName
(
String
parentName
)
{
this
.
parentName
=
parentName
;
}
public
Long
getParentId
()
{
return
parentId
;
}
public
void
setParentId
(
Long
parentId
)
{
this
.
parentId
=
parentId
;
}
public
Integer
getOrderNum
()
{
return
orderNum
;
}
public
void
setOrderNum
(
Integer
orderNum
)
{
this
.
orderNum
=
orderNum
;
}
public
String
getAncestors
()
{
return
ancestors
;
}
public
void
setAncestors
(
String
ancestors
)
{
this
.
ancestors
=
ancestors
;
}
public
List
<?>
getChildren
()
{
return
children
;
}
public
void
setChildren
(
List
<?>
children
)
{
this
.
children
=
children
;
}
}
ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java
View file @
cb0a4b78
...
...
@@ -41,7 +41,7 @@ public class SysDeptController extends BaseController
public
AjaxResult
list
(
SysDept
dept
)
{
List
<
SysDept
>
depts
=
deptService
.
selectDeptList
(
dept
);
return
AjaxResult
.
success
(
dept
Service
.
buildDeptTree
(
depts
)
);
return
AjaxResult
.
success
(
dept
s
);
}
/**
...
...
ruoyi/src/main/java/com/ruoyi/project/system/controller/SysMenuController.java
View file @
cb0a4b78
...
...
@@ -49,7 +49,7 @@ public class SysMenuController extends BaseController
LoginUser
loginUser
=
tokenService
.
getLoginUser
(
ServletUtils
.
getRequest
());
Long
userId
=
loginUser
.
getUser
().
getUserId
();
List
<
SysMenu
>
menus
=
menuService
.
selectMenuList
(
menu
,
userId
);
return
AjaxResult
.
success
(
menu
Service
.
buildMenuTree
(
menus
)
);
return
AjaxResult
.
success
(
menu
s
);
}
/**
...
...
ruoyi/src/main/java/com/ruoyi/project/tool/gen/controller/GenController.java
View file @
cb0a4b78
...
...
@@ -37,7 +37,6 @@ import com.ruoyi.project.tool.gen.service.IGenTableService;
@RequestMapping
(
"/tool/gen"
)
public
class
GenController
extends
BaseController
{
@Autowired
private
IGenTableService
genTableService
;
...
...
ruoyi/src/main/java/com/ruoyi/project/tool/gen/domain/GenTable.java
View file @
cb0a4b78
...
...
@@ -3,6 +3,7 @@ package com.ruoyi.project.tool.gen.domain;
import
java.util.List
;
import
javax.validation.Valid
;
import
javax.validation.constraints.NotBlank
;
import
org.apache.commons.lang3.ArrayUtils
;
import
com.ruoyi.common.constant.GenConstants
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.framework.web.domain.BaseEntity
;
...
...
@@ -262,7 +263,8 @@ public class GenTable extends BaseEntity
{
if
(
isTree
(
tplCategory
))
{
StringUtils
.
equalsAnyIgnoreCase
(
javaField
,
GenConstants
.
TREE_ENTITY
);
return
StringUtils
.
equalsAnyIgnoreCase
(
javaField
,
ArrayUtils
.
addAll
(
GenConstants
.
TREE_ENTITY
,
GenConstants
.
BASE_ENTITY
));
}
return
StringUtils
.
equalsAnyIgnoreCase
(
javaField
,
GenConstants
.
BASE_ENTITY
);
}
...
...
ruoyi/src/main/java/com/ruoyi/project/tool/gen/util/VelocityUtils.java
View file @
cb0a4b78
...
...
@@ -95,7 +95,14 @@ public class VelocityUtils
templates
.
add
(
"vm/xml/mapper.xml.vm"
);
templates
.
add
(
"vm/sql/sql.vm"
);
templates
.
add
(
"vm/js/api.js.vm"
);
templates
.
add
(
"vm/vue/index.vue.vm"
);
if
(
GenConstants
.
TPL_CRUD
.
equals
(
tplCategory
))
{
templates
.
add
(
"vm/vue/index.vue.vm"
);
}
else
if
(
GenConstants
.
TPL_TREE
.
equals
(
tplCategory
))
{
templates
.
add
(
"vm/vue/index-tree.vue.vm"
);
}
return
templates
;
}
...
...
@@ -147,11 +154,15 @@ public class VelocityUtils
{
fileName
=
businessName
+
"Menu.sql"
;
}
else
if
(
template
.
contains
(
"js.vm"
))
else
if
(
template
.
contains
(
"
api.
js.vm"
))
{
fileName
=
StringUtils
.
format
(
"{}/api/{}/{}.js"
,
vuePath
,
moduleName
,
businessName
);
}
else
if
(
template
.
contains
(
"vue.vm"
))
else
if
(
template
.
contains
(
"index.vue.vm"
))
{
fileName
=
StringUtils
.
format
(
"{}/views/{}/{}/index.vue"
,
vuePath
,
moduleName
,
businessName
);
}
else
if
(
template
.
contains
(
"index-tree.vue.vm"
))
{
fileName
=
StringUtils
.
format
(
"{}/views/{}/{}/index.vue"
,
vuePath
,
moduleName
,
businessName
);
}
...
...
ruoyi/src/main/resources/application.yml
View file @
cb0a4b78
...
...
@@ -3,7 +3,7 @@ ruoyi:
# 名称
name
:
RuoYi
# 版本
version
:
2.
0
.0
version
:
2.
1
.0
# 版权年份
copyrightYear
:
2019
# 实例演示开关
...
...
ruoyi/src/main/resources/mybatis/monitor/SysLogininforMapper.xml
View file @
cb0a4b78
...
...
@@ -40,6 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and date_format(login_time,'%y%m%d')
<
= date_format(#{endTime},'%y%m%d')
</if>
</where>
order by info_id desc
</select>
<delete
id=
"deleteLogininforByIds"
parameterType=
"Long"
>
...
...
ruoyi/src/main/resources/mybatis/monitor/SysOperLogMapper.xml
View file @
cb0a4b78
...
...
@@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql
id=
"selectOperLogVo"
>
select oper_id, title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_location, oper_param, json_result, status, error_msg, oper_time
from sys_oper_log
from sys_oper_log
order by oper_id desc
</sql>
<insert
id=
"insertOperlog"
parameterType=
"SysOperLog"
>
...
...
ruoyi/src/main/resources/vm/java/controller.java.vm
View file @
cb0a4b78
...
...
@@ -18,7 +18,10 @@ import ${packageName}.service.I${ClassName}Service;
import
com
.
ruoyi
.
framework
.
web
.
controller
.
BaseController
;
import
com
.
ruoyi
.
framework
.
web
.
domain
.
AjaxResult
;
import
com
.
ruoyi
.
common
.
utils
.
poi
.
ExcelUtil
;
#
if
($
table
.
crud
)
import
com
.
ruoyi
.
framework
.
web
.
page
.
TableDataInfo
;
#
elseif
($
table
.
tree
)
#
end
/**
*
${
functionName
}
Controller
...
...
@@ -38,12 +41,20 @@ public class ${ClassName}Controller extends BaseController
*/
@
PreAuthorize
(
"@ss.hasPermi('${permissionPrefix}:list')"
)
@
GetMapping
(
"/list"
)
#
if
($
table
.
crud
)
public
TableDataInfo
list
(${
ClassName
}
${
className
})
{
startPage
();
List
<${
ClassName
}>
list
=
${
className
}
Service
.
select
${
ClassName
}
List
(${
className
});
return
getDataTable
(
list
);
}
#
elseif
($
table
.
tree
)
public
AjaxResult
list
(${
ClassName
}
${
className
})
{
List
<${
ClassName
}>
list
=
${
className
}
Service
.
select
${
ClassName
}
List
(${
className
});
return
AjaxResult
.
success
(
list
);
}
#
end
/**
*
导出
${
functionName
}
列表
...
...
ruoyi/src/main/resources/vm/java/domain.java.vm
View file @
cb0a4b78
...
...
@@ -3,7 +3,11 @@ package ${packageName}.domain;
import
org
.
apache
.
commons
.
lang3
.
builder
.
ToStringBuilder
;
import
org
.
apache
.
commons
.
lang3
.
builder
.
ToStringStyle
;
import
com
.
ruoyi
.
framework
.
aspectj
.
lang
.
annotation
.
Excel
;
#
if
($
table
.
crud
)
import
com
.
ruoyi
.
framework
.
web
.
domain
.
BaseEntity
;
#
elseif
($
table
.
tree
)
import
com
.
ruoyi
.
framework
.
web
.
domain
.
TreeEntity
;
#
end
#
foreach
($
import
in
$
importList
)
import
${
import
};
#
end
...
...
@@ -14,7 +18,11 @@ import ${import};
*
@
author
${
author
}
*
@
date
${
datetime
}
*/
#
if
($
table
.
crud
)
#
set
($
Entity
=
"BaseEntity"
)
#
elseif
($
table
.
tree
)
#
set
($
Entity
=
"TreeEntity"
)
#
end
public
class
${
ClassName
}
extends
${
Entity
}
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -43,7 +51,7 @@ public class ${ClassName} extends ${Entity}
#
end
#
foreach
($
column
in
$
columns
)
#
if
(
!$table.isSuperColumn($column.javaField))
#
if
($
column
.
javaField
>
2
&&
$
column
.
javaField
.
substring
(
1
,
2
).
matches
(
"[A-Z]"
))
#
if
($
column
.
javaField
.
length
()
>
2
&&
$
column
.
javaField
.
substring
(
1
,
2
).
matches
(
"[A-Z]"
))
#
set
($
AttrName
=$
column
.
javaField
)
#
else
#
set
($
AttrName
=$
column
.
javaField
.
substring
(
0
,
1
).
toUpperCase
()
+
${
column
.
javaField
.
substring
(
1
)})
...
...
@@ -64,7 +72,7 @@ public class ${ClassName} extends ${Entity}
public
String
toString
()
{
return
new
ToStringBuilder
(
this
,
ToStringStyle
.
MULTI_LINE_STYLE
)
#
foreach
($
column
in
$
columns
)
#
if
($
column
.
javaField
>
2
&&
$
column
.
javaField
.
substring
(
1
,
2
).
matches
(
"[A-Z]"
))
#
if
($
column
.
javaField
.
length
()
>
2
&&
$
column
.
javaField
.
substring
(
1
,
2
).
matches
(
"[A-Z]"
))
#
set
($
AttrName
=$
column
.
javaField
)
#
else
#
set
($
AttrName
=$
column
.
javaField
.
substring
(
0
,
1
).
toUpperCase
()
+
${
column
.
javaField
.
substring
(
1
)})
...
...
ruoyi/src/main/resources/vm/vue/index-tree.vue.vm
0 → 100644
View file @
cb0a4b78
This diff is collapsed.
Click to expand it.
ruoyi/src/main/resources/vm/vue/index.vue.vm
View file @
cb0a4b78
...
...
@@ -22,7 +22,7 @@
/>
</el-form-item>
#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType)
<el-form-item label="${comment}" prop="${column.javaField}">
<el-form-item label="${comment}" prop="${column.javaField}">
<el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable size="small">
<el-option
v-for="dict in ${column.javaField}Options"
...
...
@@ -33,7 +33,7 @@
</el-select>
</el-form-item>
#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && $dictType)
<el-form-item label="${comment}" prop="${column.javaField}">
<el-form-item label="${comment}" prop="${column.javaField}">
<el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
...
...
@@ -230,6 +230,7 @@
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName}, export${BusinessName} } from "@/api/${moduleName}/${businessName}";
export default {
name: "${BusinessName}",
data() {
return {
// 遮罩层
...
...
@@ -288,6 +289,7 @@ export default {
$column.javaField: [
{ required: true, message: "$comment不能为空", trigger: "blur" }
]#if($velocityCount != $columns.size()),#end
#end
#end
}
...
...
Write
Preview
Markdown
is supported
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