Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
FLIPPED-AURORA
gin-vue-admin
提交
f56ff1a3
G
gin-vue-admin
项目概览
FLIPPED-AURORA
/
gin-vue-admin
大约 1 年 前同步成功
通知
337
Star
18155
Fork
5506
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gin-vue-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
f56ff1a3
编写于
9月 24, 2021
作者:
Mr.奇淼(
提交者:
GitHub
9月 24, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
样式细节调整 (#726)
增加健康检查 样式细节调整 规范化插件js模式 增加k8s yaml文件 (#734)
上级
08dbd85c
变更
30
隐藏空白更改
内联
并排
Showing
30 changed file
with
747 addition
and
368 deletion
+747
-368
deployment/server/gva-server-configmap.yaml
deployment/server/gva-server-configmap.yaml
+148
-0
deployment/server/gva-server-deployment.yaml
deployment/server/gva-server-deployment.yaml
+68
-0
deployment/server/gva-server-service.yaml
deployment/server/gva-server-service.yaml
+21
-0
deployment/web/gva-web-configmap.yaml
deployment/web/gva-web-configmap.yaml
+32
-0
deployment/web/gva-web-deploymemt.yaml
deployment/web/gva-web-deploymemt.yaml
+51
-0
deployment/web/gva-web-service.yaml
deployment/web/gva-web-service.yaml
+21
-0
server/Dockerfile
server/Dockerfile
+1
-1
server/initialize/router.go
server/initialize/router.go
+6
-0
server/resource/template/web/table.vue.tpl
server/resource/template/web/table.vue.tpl
+6
-6
server/service/system/sys_authority.go
server/service/system/sys_authority.go
+2
-1
web/src/components/warningBar/warningBar.vue
web/src/components/warningBar/warningBar.vue
+10
-6
web/src/core/gin-vue-admin.js
web/src/core/gin-vue-admin.js
+12
-10
web/src/directive/auth.js
web/src/directive/auth.js
+38
-35
web/src/main.js
web/src/main.js
+9
-6
web/src/style/element_visiable.scss
web/src/style/element_visiable.scss
+182
-11
web/src/style/main.scss
web/src/style/main.scss
+0
-180
web/src/view/example/customer/customer.vue
web/src/view/example/customer/customer.vue
+6
-6
web/src/view/example/excel/excel.vue
web/src/view/example/excel/excel.vue
+7
-7
web/src/view/example/upload/upload.vue
web/src/view/example/upload/upload.vue
+6
-6
web/src/view/login/index.vue
web/src/view/login/index.vue
+41
-12
web/src/view/superAdmin/api/api.vue
web/src/view/superAdmin/api/api.vue
+7
-8
web/src/view/superAdmin/authority/authority.vue
web/src/view/superAdmin/authority/authority.vue
+3
-3
web/src/view/superAdmin/dictionary/sysDictionary.vue
web/src/view/superAdmin/dictionary/sysDictionary.vue
+10
-10
web/src/view/superAdmin/dictionary/sysDictionaryDetail.vue
web/src/view/superAdmin/dictionary/sysDictionaryDetail.vue
+6
-6
web/src/view/superAdmin/menu/menu.vue
web/src/view/superAdmin/menu/menu.vue
+14
-14
web/src/view/superAdmin/operation/sysOperationRecord.vue
web/src/view/superAdmin/operation/sysOperationRecord.vue
+11
-11
web/src/view/superAdmin/user/user.vue
web/src/view/superAdmin/user/user.vue
+7
-7
web/src/view/systemTools/autoCode/index.vue
web/src/view/systemTools/autoCode/index.vue
+12
-12
web/src/view/systemTools/autoCodeAdmin/index.vue
web/src/view/systemTools/autoCodeAdmin/index.vue
+7
-7
web/yarn.lock
web/yarn.lock
+3
-3
未找到文件。
deployment/server/gva-server-configmap.yaml
0 → 100644
浏览文件 @
f56ff1a3
apiVersion
:
v1
kind
:
ConfigMap
metadata
:
name
:
config.yaml
annotations
:
flipped-aurora/gin-vue-admin
:
backend
github
:
"
https://github.com/flipped-aurora/gin-vue-admin.git"
app.kubernetes.io/version
:
0.0.1
labels
:
app
:
gva-server
version
:
gva-vue3
data
:
config.yaml
:
|
# github.com/flipped-aurora/gin-vue-admin/server Global Configuration
# jwt configuration
jwt:
signing-key: 'qmPlus'
expires-time: 604800
buffer-time: 86400
# zap logger configuration
zap:
level: 'info'
format: 'console'
prefix: '[github.com/flipped-aurora/gin-vue-admin/server]'
director: 'log'
link-name: 'latest_log'
show-line: true
encode-level: 'LowercaseColorLevelEncoder'
stacktrace-key: 'stacktrace'
log-in-console: true
# redis configuration
redis:
db: 0
addr: '127.0.0.1:6379'
password: ''
# email configuration
email:
to: 'xxx@qq.com'
port: 465
from: 'xxx@163.com'
host: 'smtp.163.com'
is-ssl: true
secret: 'xxx'
nickname: 'test'
# casbin configuration
casbin:
model-path: './resource/rbac_model.conf'
# system configuration
system:
env: 'develop' # Change to "develop" to skip authentication for development mode
addr: 8888
db-type: 'mysql'
oss-type: 'local' # 控制oss选择走本期还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置
use-multipoint: false
# captcha configuration
captcha:
key-long: 6
img-width: 240
img-height: 80
# mysql connect configuration
# 未初始化之前请勿手动修改数据库信息!!!如果一定要手动初始化请看(https://www.github.com/flipped-aurora/gin-vue-admin/server.com/docs/first)
mysql:
path: ''
config: ''
db-name: ''
username: ''
password: ''
max-idle-conns: 10
max-open-conns: 100
log-mode: false
log-zap: ""
# local configuration
local:
path: 'uploads/file'
# autocode configuration
autocode:
transfer-restart: true
root: ""
server: /server
server-api: /api/v1/autocode
server-initialize: /initialize
server-model: /model/autocode
server-request: /model/autocode/request/
server-router: /router/autocode
server-service: /service/autocode
web: /web/src
web-api: /api
web-flow: /view
web-form: /view
web-table: /view
# qiniu configuration (请自行七牛申请对应的 公钥 私钥 bucket 和 域名地址)
qiniu:
zone: 'ZoneHuaDong'
bucket: ''
img-path: ''
use-https: false
access-key: ''
secret-key: ''
use-cdn-domains: false
# aliyun oss configuration
aliyun-oss:
endpoint: 'yourEndpoint'
access-key-id: 'yourAccessKeyId'
access-key-secret: 'yourAccessKeySecret'
bucket-name: 'yourBucketName'
bucket-url: 'yourBucketUrl'
base-path: 'yourBasePath'
# tencent cos configuration
tencent-cos:
bucket: 'xxxxx-10005608'
region: 'ap-shanghai'
secret-id: 'xxxxxxxx'
secret-key: 'xxxxxxxx'
base-url: 'https://gin.vue.admin'
path-prefix: 'github.com/flipped-aurora/gin-vue-admin/server'
# excel configuration
excel:
dir: './resource/excel/'
# timer task db clear table
Timer:
start: true
spec: "@daily" # 定时任务详细配置参考 https://pkg.go.dev/github.com/robfig/cron/v3
detail: [
# tableName: 需要清理的表名
# compareField: 需要比较时间的字段
# interval: 时间间隔, 具体配置详看 time.ParseDuration() 中字符串表示 且不能为负数
# 2160h = 24 * 30 * 3 -> 三个月
{ tableName: "sys_operation_records" , compareField: "created_at", interval: "2160h" },
{ tableName: "jwt_blacklists" , compareField: "created_at", interval: "168h" }
#{ tableName: "log2" , compareField: "created_at", interval: "2160h" }
]
deployment/server/gva-server-deployment.yaml
0 → 100644
浏览文件 @
f56ff1a3
apiVersion
:
apps/v1
kind
:
Deployment
metadata
:
name
:
gva-server
annotations
:
flipped-aurora/gin-vue-admin
:
backend
github
:
"
https://github.com/flipped-aurora/gin-vue-admin.git"
app.kubernetes.io/version
:
0.0.1
labels
:
app
:
gva-server
version
:
gva-vue3
spec
:
replicas
:
1
selector
:
matchLabels
:
app
:
gva-server
version
:
gva-vue3
template
:
metadata
:
labels
:
app
:
gva-server
version
:
gva-vue3
spec
:
containers
:
-
name
:
gin-vue-admin-container
image
:
registry.cn-hangzhou.aliyuncs.com/gin-vue-admin/server:40fc3aa6
imagePullPolicy
:
IfNotPresent
ports
:
-
containerPort
:
8888
name
:
http
volumeMounts
:
-
mountPath
:
/go/src/github.com/flipped-aurora/gin-vue-admin/server/config.yaml
name
:
config
subPath
:
config.yaml
-
mountPath
:
/etc/localtime
name
:
localtime
resources
:
limits
:
cpu
:
1000m
memory
:
2000Mi
requests
:
cpu
:
100m
memory
:
200Mi
# readinessProbe:
# httpGet:
# path: /ready
# port: http
# initialDelaySeconds: 20
# periodSeconds: 10
# successThreshold: 1
# failureThreshold: 3
# livenessProbe:
# httpGet:
# path: /health
# port: http
# initialDelaySeconds: 20
# periodSeconds: 10
# successThreshold: 1
# failureThreshold: 3
#imagePullSecrets:
# - name: docker-registry
volumes
:
-
name
:
localtime
hostPath
:
path
:
/etc/localtime
-
name
:
config
configMap
:
name
:
config.yaml
\ No newline at end of file
deployment/server/gva-server-service.yaml
0 → 100644
浏览文件 @
f56ff1a3
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
gva-server
annotations
:
flipped-aurora/gin-vue-admin
:
backend
github
:
"
https://github.com/flipped-aurora/gin-vue-admin.git"
app.kubernetes.io/version
:
0.0.1
labels
:
app
:
gva-server
version
:
gva-vue3
spec
:
selector
:
app
:
gva-server
version
:
gva-vue3
ports
:
-
port
:
8888
name
:
http
targetPort
:
8888
type
:
ClusterIP
# type: NodePort
deployment/web/gva-web-configmap.yaml
0 → 100644
浏览文件 @
f56ff1a3
apiVersion
:
v1
kind
:
ConfigMap
metadata
:
name
:
my.conf
data
:
my.conf
:
|
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
try_files $uri $uri/ /index.html;
}
location /api {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^/api/(.*)$ /$1 break; #重写
proxy_pass http://gva-server:8888; # 设置代理服务器的协议和地址
}
location /api/swagger/index.html {
proxy_pass http://gva-server:8888/swagger/index.html;
}
}
\ No newline at end of file
deployment/web/gva-web-deploymemt.yaml
0 → 100644
浏览文件 @
f56ff1a3
apiVersion
:
apps/v1
kind
:
Deployment
metadata
:
name
:
gva-web
annotations
:
flipped-aurora/gin-vue-admin
:
ui
github
:
"
https://github.com/flipped-aurora/gin-vue-admin.git"
app.kubernetes.io/version
:
0.0.1
labels
:
app
:
gva-web
version
:
gva-vue3
spec
:
replicas
:
1
selector
:
matchLabels
:
app
:
gva-web
version
:
gva-vue3
template
:
metadata
:
labels
:
app
:
gva-web
version
:
gva-vue3
spec
:
containers
:
-
name
:
gin-vue-admin-nginx-container
image
:
registry.cn-hangzhou.aliyuncs.com/gin-vue-admin/web:40fc3aa6
imagePullPolicy
:
IfNotPresent
ports
:
-
containerPort
:
8080
name
:
http
readinessProbe
:
tcpSocket
:
port
:
8080
initialDelaySeconds
:
10
periodSeconds
:
10
successThreshold
:
1
failureThreshold
:
3
resources
:
limits
:
cpu
:
500m
memory
:
1000Mi
requests
:
cpu
:
100m
memory
:
100Mi
volumeMounts
:
-
mountPath
:
/etc/nginx/conf.d/
name
:
nginx-config
volumes
:
-
name
:
nginx-config
configMap
:
name
:
my.conf
deployment/web/gva-web-service.yaml
0 → 100644
浏览文件 @
f56ff1a3
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
gva-web
annotations
:
flipped-aurora/gin-vue-admin
:
ui
github
:
"
https://github.com/flipped-aurora/gin-vue-admin.git"
app.kubernetes.io/version
:
0.0.1
labels
:
app
:
gva-web
version
:
gva-vue3
spec
:
type
:
NodePort
# type: ClusterIP
ports
:
-
name
:
http
port
:
8080
targetPort
:
8080
selector
:
app
:
gva-web
version
:
gva-vue3
server/Dockerfile
浏览文件 @
f56ff1a3
FROM
golang:alpine
FROM
golang:alpine
as builder
WORKDIR
/go/src/github.com/flipped-aurora/gin-vue-admin/server
WORKDIR
/go/src/github.com/flipped-aurora/gin-vue-admin/server
COPY
. .
COPY
. .
...
...
server/initialize/router.go
浏览文件 @
f56ff1a3
...
@@ -41,6 +41,12 @@ func Routers() *gin.Engine {
...
@@ -41,6 +41,12 @@ func Routers() *gin.Engine {
exampleRouter
:=
router
.
RouterGroupApp
.
Example
exampleRouter
:=
router
.
RouterGroupApp
.
Example
autocodeRouter
:=
router
.
RouterGroupApp
.
Autocode
autocodeRouter
:=
router
.
RouterGroupApp
.
Autocode
PublicGroup
:=
Router
.
Group
(
""
)
PublicGroup
:=
Router
.
Group
(
""
)
{
// 健康监测
PublicGroup
.
GET
(
"/health"
,
func
(
c
*
gin
.
Context
)
{
c
.
JSON
(
200
,
"ok"
)
})
}
{
{
systemRouter
.
InitBaseRouter
(
PublicGroup
)
// 注册基础功能路由 不做鉴权
systemRouter
.
InitBaseRouter
(
PublicGroup
)
// 注册基础功能路由 不做鉴权
systemRouter
.
InitInitRouter
(
PublicGroup
)
// 自动初始化相关
systemRouter
.
InitInitRouter
(
PublicGroup
)
// 自动初始化相关
...
...
server/resource/template/web/table.vue.tpl
浏览文件 @
f56ff1a3
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
<el-button
size=
"mini"
type=
"primary"
@
click=
"onDelete"
>
确定
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"onDelete"
>
确定
</el-button>
</div>
</div>
<template
#reference
>
<template
#reference
>
<el-button
icon=
"el-icon-delete"
size=
"mini"
style=
"margin-left: 10px;"
>
删除
</el-button>
<el-button
icon=
"el-icon-delete"
size=
"mini"
style=
"margin-left: 10px;"
:disabled=
"!multipleSelection.length"
>
删除
</el-button>
</template>
</template>
</el-popover>
</el-popover>
</div>
</div>
...
@@ -50,24 +50,24 @@
...
@@ -50,24 +50,24 @@
@
selection-change=
"handleSelectionChange"
@
selection-change=
"handleSelectionChange"
>
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
align=
"
center
"
label=
"日期"
width=
"180"
>
<el-table-column
align=
"
left
"
label=
"日期"
width=
"180"
>
<template
#default
="
scope
"
>
{{ "{{ formatDate(scope.row.CreatedAt) }}" }}
</template>
<template
#default
="
scope
"
>
{{ "{{ formatDate(scope.row.CreatedAt) }}" }}
</template>
</el-table-column>
</el-table-column>
{{- range .Fields}}
{{- range .Fields}}
{{- if .DictType}}
{{- if .DictType}}
<el-table-column
align=
"
center
"
label=
"{{.FieldDesc}}"
prop=
"{{.FieldJson}}"
width=
"120"
>
<el-table-column
align=
"
left
"
label=
"{{.FieldDesc}}"
prop=
"{{.FieldJson}}"
width=
"120"
>
<template
#default
="
scope
"
>
<template
#default
="
scope
"
>
{
{
"{{"
}
} filterDict(scope.row.{{.FieldJson}},"{{.DictType}}") {
{
"}}"
}
}
{
{
"{{"
}
} filterDict(scope.row.{{.FieldJson}},"{{.DictType}}") {
{
"}}"
}
}
</template>
</template>
</el-table-column>
</el-table-column>
{{- else if eq .FieldType "bool" }}
{{- else if eq .FieldType "bool" }}
<el-table-column
align=
"
center
"
label=
"{{.FieldDesc}}"
prop=
"{{.FieldJson}}"
width=
"120"
>
<el-table-column
align=
"
left
"
label=
"{{.FieldDesc}}"
prop=
"{{.FieldJson}}"
width=
"120"
>
<template
#default
="
scope
"
>
{
{
"{{"
}
} formatBoolean(scope.row.{{.FieldJson}}) {
{
"}}"
}
}
</template>
<template
#default
="
scope
"
>
{
{
"{{"
}
} formatBoolean(scope.row.{{.FieldJson}}) {
{
"}}"
}
}
</template>
</el-table-column>
{{- else }}
</el-table-column>
{{- else }}
<el-table-column
align=
"
center
"
label=
"{{.FieldDesc}}"
prop=
"{{.FieldJson}}"
width=
"120"
/>
<el-table-column
align=
"
left
"
label=
"{{.FieldDesc}}"
prop=
"{{.FieldJson}}"
width=
"120"
/>
{{- end }}
{{- end }}
{{- end }}
{{- end }}
<el-table-column
align=
"
center
"
label=
"按钮组"
>
<el-table-column
align=
"
left
"
label=
"按钮组"
>
<template
#default
="
scope
"
>
<template
#default
="
scope
"
>
<el-button
type=
"text"
icon=
"el-icon-edit"
size=
"small"
class=
"table-button"
@
click=
"update{{.StructName}}(scope.row)"
>
变更
</el-button>
<el-button
type=
"text"
icon=
"el-icon-edit"
size=
"small"
class=
"table-button"
@
click=
"update{{.StructName}}(scope.row)"
>
变更
</el-button>
<el-button
type=
"text"
icon=
"el-icon-delete"
size=
"mini"
@
click=
"deleteRow(scope.row)"
>
删除
</el-button>
<el-button
type=
"text"
icon=
"el-icon-delete"
size=
"mini"
@
click=
"deleteRow(scope.row)"
>
删除
</el-button>
...
...
server/service/system/sys_authority.go
浏览文件 @
f56ff1a3
...
@@ -121,7 +121,8 @@ func (authorityService *AuthorityService) DeleteAuthority(auth *system.SysAuthor
...
@@ -121,7 +121,8 @@ func (authorityService *AuthorityService) DeleteAuthority(auth *system.SysAuthor
func
(
authorityService
*
AuthorityService
)
GetAuthorityInfoList
(
info
request
.
PageInfo
)
(
err
error
,
list
interface
{},
total
int64
)
{
func
(
authorityService
*
AuthorityService
)
GetAuthorityInfoList
(
info
request
.
PageInfo
)
(
err
error
,
list
interface
{},
total
int64
)
{
limit
:=
info
.
PageSize
limit
:=
info
.
PageSize
offset
:=
info
.
PageSize
*
(
info
.
Page
-
1
)
offset
:=
info
.
PageSize
*
(
info
.
Page
-
1
)
db
:=
global
.
GVA_DB
db
:=
global
.
GVA_DB
.
Model
(
&
system
.
SysAuthority
{})
err
=
db
.
Where
(
"parent_id = 0"
)
.
Count
(
&
total
)
.
Error
var
authority
[]
system
.
SysAuthority
var
authority
[]
system
.
SysAuthority
err
=
db
.
Limit
(
limit
)
.
Offset
(
offset
)
.
Preload
(
"DataAuthorityId"
)
.
Where
(
"parent_id = 0"
)
.
Find
(
&
authority
)
.
Error
err
=
db
.
Limit
(
limit
)
.
Offset
(
offset
)
.
Preload
(
"DataAuthorityId"
)
.
Where
(
"parent_id = 0"
)
.
Find
(
&
authority
)
.
Error
if
len
(
authority
)
>
0
{
if
len
(
authority
)
>
0
{
...
...
web/src/components/warningBar/warningBar.vue
浏览文件 @
f56ff1a3
<
template
>
<
template
>
<div
class=
"warning-bar"
>
<div
class=
"warning-bar"
>
<el-icon>
<el-icon>
<warning-filled
/>
<warning-filled
/>
</el-icon>
</el-icon>
...
@@ -19,7 +21,7 @@ export default {
...
@@ -19,7 +21,7 @@ export default {
title
:
{
title
:
{
type
:
String
,
type
:
String
,
default
:
''
default
:
''
}
}
,
}
}
}
}
</
script
>
</
script
>
...
@@ -30,14 +32,16 @@ export default {
...
@@ -30,14 +32,16 @@ export default {
padding
:
6px
14px
;
padding
:
6px
14px
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
border-radius
:
2px
;
.el-icon
{
.el-icon
{
color
:
#ED6A0C
;
font-size
:
18px
;
color
:
#ED6A0C
;
}
}
margin-bottom
:
2
2px
;
margin-bottom
:
1
2px
;
span
{
span
{
color
:
#5D5D5E
;
line-height
:
22px
;
color
:
#F67207
;
margin-left
:
8px
;
margin-left
:
8px
;
line-height
:
18px
;
}
}
}
}
</
style
>
</
style
>
web/src/core/gin-vue-admin.js
浏览文件 @
f56ff1a3
...
@@ -5,14 +5,16 @@
...
@@ -5,14 +5,16 @@
// 加载网站配置文件夹
// 加载网站配置文件夹
import
{
register
}
from
'
./global
'
import
{
register
}
from
'
./global
'
export
const
run
=
function
(
app
)
{
export
default
{
register
(
app
)
install
:
(
app
)
=>
{
console
.
log
(
`
register
(
app
)
欢迎使用 Gin-Vue-Admin
console
.
log
(
`
当前版本:V2.4.5 beta.1
欢迎使用 Gin-Vue-Admin
加群方式:微信:shouzi_1994 QQ群:622360840
当前版本:V2.4.5 beta.1
默认自动化文档地址:http://127.0.0.1:
${
import
.
meta
.
env
.
VITE_SERVER_PORT
}
/swagger/index.html
加群方式:微信:shouzi_1994 QQ群:622360840
默认前端文件运行地址:http://127.0.0.1:
${
import
.
meta
.
env
.
VITE_CLI_PORT
}
默认自动化文档地址:http://127.0.0.1:
${
import
.
meta
.
env
.
VITE_SERVER_PORT
}
/swagger/index.html
如果项目让您获得了收益,希望您能请团队喝杯可乐:https://www.gin-vue-admin.com/docs/coffee
默认前端文件运行地址:http://127.0.0.1:
${
import
.
meta
.
env
.
VITE_CLI_PORT
}
`
)
如果项目让您获得了收益,希望您能请团队喝杯可乐:https://www.gin-vue-admin.com/docs/coffee
`
)
}
}
}
web/src/directive/auth.js
浏览文件 @
f56ff1a3
// 权限按钮展示指令
// 权限按钮展示指令
import
{
store
}
from
'
@/store
'
import
{
store
}
from
'
@/store
'
export
const
auth
=
(
app
)
=>
{
export
default
{
app
.
directive
(
'
auth
'
,
{
install
:
(
app
)
=>
{
// 当被绑定的元素插入到 DOM 中时……
app
.
directive
(
'
auth
'
,
{
mounted
:
function
(
el
,
binding
)
{
// 当被绑定的元素插入到 DOM 中时……
const
userInfo
=
store
.
getters
[
'
user/userInfo
'
]
mounted
:
function
(
el
,
binding
)
{
let
type
=
''
const
userInfo
=
store
.
getters
[
'
user/userInfo
'
]
switch
(
Object
.
prototype
.
toString
.
call
(
binding
.
value
))
{
let
type
=
''
case
'
[object Array]
'
:
switch
(
Object
.
prototype
.
toString
.
call
(
binding
.
value
))
{
type
=
'
Array
'
case
'
[object Array]
'
:
break
type
=
'
Array
'
case
'
[object String]
'
:
break
type
=
'
String
'
case
'
[object String]
'
:
break
type
=
'
String
'
case
'
[object Number]
'
:
break
type
=
'
Number
'
case
'
[object Number]
'
:
break
type
=
'
Number
'
default
:
break
type
=
''
default
:
break
type
=
''
break
}
if
(
type
===
''
)
{
/* eslint-disable */
console
.
error
(
"
v-auth必须是Array,Number,String属性,暂不支持其他属性
"
)
/* eslint-enable */
return
}
const
waitUse
=
binding
.
value
.
toString
().
split
(
'
,
'
)
let
flag
=
waitUse
.
some
(
item
=>
item
===
userInfo
.
authorityId
)
if
(
binding
.
modifiers
.
not
)
{
flag
=
!
flag
}
if
(
!
flag
)
{
el
.
style
.
display
=
'
none
'
}
}
}
if
(
type
===
''
)
{
})
/* eslint-disable */
}
console
.
error
(
"
v-auth必须是Array,Number,String属性,暂不支持其他属性
"
)
/* eslint-enable */
return
}
const
waitUse
=
binding
.
value
.
toString
().
split
(
'
,
'
)
let
flag
=
waitUse
.
some
(
item
=>
item
===
userInfo
.
authorityId
)
if
(
binding
.
modifiers
.
not
)
{
flag
=
!
flag
}
if
(
!
flag
)
{
el
.
style
.
display
=
'
none
'
}
}
})
}
}
web/src/main.js
浏览文件 @
f56ff1a3
import
{
createApp
}
from
'
vue
'
import
{
createApp
}
from
'
vue
'
import
'
element-plus/dist/index.css
'
import
'
element-plus/dist/index.css
'
import
'
./style/element_visiable.scss
'
import
ElementPlus
from
'
element-plus
'
import
ElementPlus
from
'
element-plus
'
import
zhCn
from
'
element-plus/es/locale/lang/zh-cn
'
import
zhCn
from
'
element-plus/es/locale/lang/zh-cn
'
// 引入gin-vue-admin前端初始化相关内容
// 引入gin-vue-admin前端初始化相关内容
import
'
./core/gin-vue-admin
'
import
'
./core/gin-vue-admin
'
// 引入封装的router
// 引入封装的router
import
router
from
'
@/router/index
'
import
router
from
'
@/router/index
'
import
{
run
}
from
'
@/core/gin-vue-admin.js
'
import
run
from
'
@/core/gin-vue-admin.js
'
import
auth
from
'
@/directive/auth
'
import
'
@/permission
'
import
'
@/permission
'
import
{
store
}
from
'
@/store/index
'
import
{
store
}
from
'
@/store/index
'
import
{
auth
}
from
'
@/directive/auth
'
import
App
from
'
./App.vue
'
import
App
from
'
./App.vue
'
const
app
=
createApp
(
App
)
const
app
=
createApp
(
App
)
run
(
app
)
auth
(
app
)
app
.
config
.
productionTip
=
false
app
.
config
.
productionTip
=
false
app
.
use
(
store
).
use
(
router
).
use
(
ElementPlus
,
{
locale
:
zhCn
}).
mount
(
'
#app
'
)
app
.
use
(
run
)
.
use
(
auth
)
.
use
(
store
)
.
use
(
router
)
.
use
(
ElementPlus
,
{
locale
:
zhCn
}).
mount
(
'
#app
'
)
export
default
app
export
default
app
web/src/style/element_visiable.scss
浏览文件 @
f56ff1a3
/* 改变主题色变量 */
/* 改变主题色变量 */
$--color-primary
:
#1890ff
;
#app
{
#app
{
.el-button
{
.el-button
{
font-weight
:
400
;
font-weight
:
400
;
border-radius
:
4
px
;
border-radius
:
2
px
;
}
}
}
}
///* 改变 icon 字体路径变量,必需 */
//$--font-path: '~element-ui/lib/theme-chalk/fonts';
//
//
//
//@import "~element-ui/packages/theme-chalk/src/index";
//
.el-dialog
{
border-radius
:
2px
;
}
::-webkit-scrollbar-track-piece
{
background-color
:
#f8f8f8
;
}
::-webkit-scrollbar
{
width
:
9px
;
height
:
9px
;
}
::-webkit-scrollbar-thumb
{
background-color
:
#dddddd
;
background-clip
:
padding-box
;
min-height
:
28px
;
border-radius
:
4px
;
}
::-webkit-scrollbar-thumb:hover
{
background-color
:
#bbb
;
}
.el-button--primary
{
--el-button-font-color
:
#ffffff
;
--el-button-background-color
:
#4D70FF
;
--el-button-border-color
:
#4D70FF
;
--el-button-hover-color
:
#0d84ff
;
--el-button-active-font-color
:
#e6e6e6
;
--el-button-active-background-color
:
#0d84ff
;
--el-button-active-border-color
:
#0d84ff
;
}
:export
{
.el-button--primary
{
colorPrimary
:
$--color-primary
--el-button-font-color
:
#ffffff
;
--el-button-background-color
:
#4D70FF
;
--el-button-border-color
:
#4D70FF
;
--el-button-hover-color
:
#0d84ff
;
--el-button-active-font-color
:
#e6e6e6
;
--el-button-active-background-color
:
#0d84ff
;
--el-button-active-border-color
:
#0d84ff
;
}
}
:root
{
--el-color-primary
:
#4D70FF
;
}
.gva-search-box
{
.el-collapse
{
border
:
none
;
.el-collapse-item__header
,
.el-collapse-item__wrap
{
border-bottom
:
none
;
}
}
padding
:
24px
;
padding-bottom
:
2px
;
background-color
:
#fff
;
border-radius
:
2px
;
margin-bottom
:
12px
;
.el-form
{
.el-form-item
{
padding-right
:
28px
;
}
}
}
.gva-form-box
{
padding
:
24px
;
background-color
:
#fff
;
border-radius
:
2px
;
}
.gva-table-box
{
padding
:
24px
;
background-color
:
#fff
;
border-radius
:
2px
;
}
.gva-pagination
{
display
:
flex
;
justify-content
:
flex-end
;
.el-pagination__editor
{
.el-input__inner
{
height
:
32px
;
}
}
.el-pagination__total
{
line-height
:
32px
!
important
;
}
.btn-prev
{
padding-right
:
6px
;
display
:
inline-flex
;
justify-content
:
center
;
align-items
:
center
;
width
:
32px
;
height
:
32px
;
}
.number
{
display
:
inline-flex
;
justify-content
:
center
;
align-items
:
center
;
width
:
32px
;
height
:
32px
;
}
.btn-quicknext
{
display
:
inline-flex
;
justify-content
:
center
;
align-items
:
center
;
width
:
32px
;
height
:
32px
;
}
.btn-next
{
padding-left
:
6px
;
width
:
32px
;
height
:
32px
;
display
:
inline-flex
;
justify-content
:
center
;
align-items
:
center
;
}
.active
{
background
:
#4D70FF
;
border-radius
:
2px
;
color
:
#ffffff
!
important
;
}
.el-pager
li
.active
+
li
{
border-left
:
1px
solid
#ddd
!
important
;
}
.el-pagination__sizes
{
.el-input
{
.el-input__suffix
{
margin-top
:
2px
;
}
}
}
.el-pagination__jump
{
.el-pagination__editor
{}
}
}
.el-button--mini
{
min-height
:
32px
;
}
.el-button
{
padding
:
8px
16px
;
border-radius
:
2px
;
&
.el-button--text
{
padding
:
8px
0
;
}
}
.el-dialog
{
padding
:
12px
;
.el-dialog__body
{
padding
:
12px
6px
;
}
.el-dialog__header
{
.el-dialog__title
{
font-size
:
14px
;
font-weight
:
500
;
}
padding
:
2px
20px
12px
20px
;
border-bottom
:
1px
solid
#E4E4E4
;
}
.el-dialog__headerbtn
{
top
:
16px
;
}
.el-dialog__footer
{
margin-top
:
-12px
;
padding
:
0
0
16px
0
;
.dialog-footer
{
.el-button
{
padding-left
:
24px
;
padding-right
:
24px
;
}
.el-button
+
.el-button
{
margin-left
:
30px
;
}
}
}
}
\ No newline at end of file
web/src/style/main.scss
浏览文件 @
f56ff1a3
...
@@ -1368,183 +1368,3 @@ $mainHight: 100vh;
...
@@ -1368,183 +1368,3 @@ $mainHight: 100vh;
.justify-content-flex-end
{
.justify-content-flex-end
{
justify-content
:
flex-end
;
justify-content
:
flex-end
;
}
}
::-webkit-scrollbar-track-piece
{
background-color
:
#f8f8f8
;
}
::-webkit-scrollbar
{
width
:
9px
;
height
:
9px
;
}
::-webkit-scrollbar-thumb
{
background-color
:
#dddddd
;
background-clip
:
padding-box
;
min-height
:
28px
;
border-radius
:
4px
;
}
::-webkit-scrollbar-thumb:hover
{
background-color
:
#bbb
;
}
.el-button--primary
{
--el-button-font-color
:
#ffffff
;
--el-button-background-color
:
#4D70FF
;
--el-button-border-color
:
#4D70FF
;
--el-button-hover-color
:
#0d84ff
;
--el-button-active-font-color
:
#e6e6e6
;
--el-button-active-background-color
:
#0d84ff
;
--el-button-active-border-color
:
#0d84ff
;
}
.el-button--primary
{
--el-button-font-color
:
#ffffff
;
--el-button-background-color
:
#4D70FF
;
--el-button-border-color
:
#4D70FF
;
--el-button-hover-color
:
#0d84ff
;
--el-button-active-font-color
:
#e6e6e6
;
--el-button-active-background-color
:
#0d84ff
;
--el-button-active-border-color
:
#0d84ff
;
}
:root
{
--el-color-primary
:
#4D70FF
;
}
.gva-search-box
{
.el-collapse
{
border
:
none
;
.el-collapse-item__header
,
.el-collapse-item__wrap
{
border-bottom
:
none
;
}
}
padding
:
24px
;
padding-bottom
:
2px
;
background-color
:
#fff
;
border-radius
:
2px
;
margin-bottom
:
12px
;
.el-form
{
.el-form-item
{
padding-right
:
28px
;
}
}
}
.gva-form-box
{
padding
:
24px
;
background-color
:
#fff
;
border-radius
:
2px
;
}
.gva-table-box
{
padding
:
24px
;
background-color
:
#fff
;
border-radius
:
2px
;
}
.gva-pagination
{
display
:
flex
;
justify-content
:
flex-end
;
.el-pagination__editor
{
.el-input__inner
{
height
:
32px
;
}
}
.el-pagination__total
{
line-height
:
32px
!
important
;
}
.btn-prev
{
padding-right
:
6px
;
display
:
inline-flex
;
justify-content
:
center
;
align-items
:
center
;
width
:
32px
;
height
:
32px
;
}
.number
{
display
:
inline-flex
;
justify-content
:
center
;
align-items
:
center
;
width
:
32px
;
height
:
32px
;
}
.btn-quicknext
{
display
:
inline-flex
;
justify-content
:
center
;
align-items
:
center
;
width
:
32px
;
height
:
32px
;
}
.btn-next
{
padding-left
:
6px
;
width
:
32px
;
height
:
32px
;
display
:
inline-flex
;
justify-content
:
center
;
align-items
:
center
;
}
.active
{
background
:
#4D70FF
;
border-radius
:
2px
;
color
:
#ffffff
!
important
;
}
.el-pager
li
.active
+
li
{
border-left
:
1px
solid
#ddd
!
important
;
}
.el-pagination__sizes
{
.el-input
{
.el-input__suffix
{
margin-top
:
2px
;
}
}
}
.el-pagination__jump
{
.el-pagination__editor
{}
}
}
.el-button--mini
{
min-height
:
32px
;
}
.el-button
{
padding
:
8px
16px
;
border-radius
:
2px
;
&
.el-button--text
{
padding
:
8px
0
;
}
}
.el-dialog
{
padding
:
12px
;
.el-dialog__body
{
padding
:
12px
6px
;
}
.el-dialog__header
{
.el-dialog__title
{
font-size
:
14px
;
font-weight
:
500
;
}
padding
:
2px
20px
12px
20px
;
border-bottom
:
1px
solid
#E4E4E4
;
}
.el-dialog__headerbtn
{
top
:
16px
;
}
.el-dialog__footer
{
margin-top
:
-12px
;
padding
:
0
0
16px
0
;
.dialog-footer
{
.el-button
{
padding-left
:
24px
;
padding-right
:
24px
;
}
.el-button
+
.el-button
{
margin-left
:
30px
;
}
}
}
}
\ No newline at end of file
web/src/view/example/customer/customer.vue
浏览文件 @
f56ff1a3
<
template
>
<
template
>
<div>
<div>
<warning-bar
title=
"在资源权限中将此角色的资源权限清空 或者不包含创建者的角色 即可屏蔽此客户资源的显示"
/>
<div
class=
"gva-table-box"
>
<div
class=
"gva-table-box"
>
<div
class=
"gva-btn-list"
>
<div
class=
"gva-btn-list"
>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-plus"
@
click=
"openDialog"
>
新增
</el-button>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-plus"
@
click=
"openDialog"
>
新增
</el-button>
...
@@ -12,15 +13,15 @@
...
@@ -12,15 +13,15 @@
row-key=
"ID"
row-key=
"ID"
>
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
align=
"
center
"
label=
"接入日期"
width=
"180"
>
<el-table-column
align=
"
left
"
label=
"接入日期"
width=
"180"
>
<template
#default
="
scope
"
>
<template
#default
="
scope
"
>
<span>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</span>
<span>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"姓名"
prop=
"customerName"
width=
"120"
/>
<el-table-column
align=
"
left
"
label=
"姓名"
prop=
"customerName"
width=
"120"
/>
<el-table-column
align=
"
center
"
label=
"电话"
prop=
"customerPhoneData"
width=
"120"
/>
<el-table-column
align=
"
left
"
label=
"电话"
prop=
"customerPhoneData"
width=
"120"
/>
<el-table-column
align=
"
center
"
label=
"接入人ID"
prop=
"sysUserId"
width=
"120"
/>
<el-table-column
align=
"
left
"
label=
"接入人ID"
prop=
"sysUserId"
width=
"120"
/>
<el-table-column
align=
"
center
"
label=
"按钮组"
min-width=
"160"
>
<el-table-column
align=
"
left
"
label=
"按钮组"
min-width=
"160"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-button
size=
"small"
type=
"text"
icon=
"el-icon-edit"
@
click=
"updateCustomer(scope.row)"
>
变更
</el-button>
<el-button
size=
"small"
type=
"text"
icon=
"el-icon-edit"
@
click=
"updateCustomer(scope.row)"
>
变更
</el-button>
<el-popover
:visible=
"scope.row.visible"
placement=
"top"
width=
"160"
>
<el-popover
:visible=
"scope.row.visible"
placement=
"top"
width=
"160"
>
...
@@ -36,7 +37,6 @@
...
@@ -36,7 +37,6 @@
</template>
</template>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<warning-bar
style=
"margin-top:12px;"
title=
"在资源权限中将此角色的资源权限清空 或者不包含创建者的角色 即可屏蔽此客户资源的显示"
/>
<div
class=
"gva-pagination"
>
<div
class=
"gva-pagination"
>
<el-pagination
<el-pagination
:current-page=
"page"
:current-page=
"page"
...
...
web/src/view/example/excel/excel.vue
浏览文件 @
f56ff1a3
...
@@ -16,18 +16,18 @@
...
@@ -16,18 +16,18 @@
<el-button
class=
"excel-btn"
size=
"mini"
type=
"success"
icon=
"el-icon-download"
@
click=
"downloadExcelTemplate()"
>
下载模板
</el-button>
<el-button
class=
"excel-btn"
size=
"mini"
type=
"success"
icon=
"el-icon-download"
@
click=
"downloadExcelTemplate()"
>
下载模板
</el-button>
</div>
</div>
<el-table
:data=
"tableData"
row-key=
"ID"
>
<el-table
:data=
"tableData"
row-key=
"ID"
>
<el-table-column
align=
"
center
"
label=
"ID"
min-width=
"100"
prop=
"ID"
/>
<el-table-column
align=
"
left
"
label=
"ID"
min-width=
"100"
prop=
"ID"
/>
<el-table-column
align=
"
center
"
show-overflow-tooltip
label=
"路由Name"
min-width=
"160"
prop=
"name"
/>
<el-table-column
align=
"
left
"
show-overflow-tooltip
label=
"路由Name"
min-width=
"160"
prop=
"name"
/>
<el-table-column
align=
"
center
"
show-overflow-tooltip
label=
"路由Path"
min-width=
"160"
prop=
"path"
/>
<el-table-column
align=
"
left
"
show-overflow-tooltip
label=
"路由Path"
min-width=
"160"
prop=
"path"
/>
<el-table-column
align=
"
center
"
label=
"是否隐藏"
min-width=
"100"
prop=
"hidden"
>
<el-table-column
align=
"
left
"
label=
"是否隐藏"
min-width=
"100"
prop=
"hidden"
>
<template
#default
="
scope
"
>
<template
#default
="
scope
"
>
<span>
{{
scope
.
row
.
hidden
?
"
隐藏
"
:
"
显示
"
}}
</span>
<span>
{{
scope
.
row
.
hidden
?
"
隐藏
"
:
"
显示
"
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"父节点"
min-width=
"90"
prop=
"parentId"
/>
<el-table-column
align=
"
left
"
label=
"父节点"
min-width=
"90"
prop=
"parentId"
/>
<el-table-column
align=
"
center
"
label=
"排序"
min-width=
"70"
prop=
"sort"
/>
<el-table-column
align=
"
left
"
label=
"排序"
min-width=
"70"
prop=
"sort"
/>
<el-table-column
align=
"
center
"
label=
"文件路径"
min-width=
"360"
prop=
"component"
/>
<el-table-column
align=
"
left
"
label=
"文件路径"
min-width=
"360"
prop=
"component"
/>
</el-table>
</el-table>
</div>
</div>
</div>
</div>
...
...
web/src/view/example/upload/upload.vue
浏览文件 @
f56ff1a3
...
@@ -23,19 +23,19 @@
...
@@ -23,19 +23,19 @@
</div>
</div>
<el-table
:data=
"tableData"
>
<el-table
:data=
"tableData"
>
<el-table-column
align=
"
center
"
label=
"预览"
width=
"100"
>
<el-table-column
align=
"
left
"
label=
"预览"
width=
"100"
>
<template
#default
="
scope
"
>
<template
#default
="
scope
"
>
<CustomPic
pic-type=
"file"
:pic-src=
"scope.row.url"
/>
<CustomPic
pic-type=
"file"
:pic-src=
"scope.row.url"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"日期"
prop=
"UpdatedAt"
width=
"180"
>
<el-table-column
align=
"
left
"
label=
"日期"
prop=
"UpdatedAt"
width=
"180"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<div>
{{
formatDate
(
scope
.
row
.
UpdatedAt
)
}}
</div>
<div>
{{
formatDate
(
scope
.
row
.
UpdatedAt
)
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"文件名"
prop=
"name"
width=
"180"
/>
<el-table-column
align=
"
left
"
label=
"文件名"
prop=
"name"
width=
"180"
/>
<el-table-column
align=
"
center
"
label=
"链接"
prop=
"url"
min-width=
"300"
/>
<el-table-column
align=
"
left
"
label=
"链接"
prop=
"url"
min-width=
"300"
/>
<el-table-column
align=
"
center
"
label=
"标签"
prop=
"tag"
width=
"100"
>
<el-table-column
align=
"
left
"
label=
"标签"
prop=
"tag"
width=
"100"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-tag
<el-tag
:type=
"scope.row.tag === 'jpg' ? 'primary' : 'success'"
:type=
"scope.row.tag === 'jpg' ? 'primary' : 'success'"
...
@@ -43,7 +43,7 @@
...
@@ -43,7 +43,7 @@
>
{{
scope
.
row
.
tag
}}
</el-tag>
>
{{
scope
.
row
.
tag
}}
</el-tag>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"操作"
width=
"160"
>
<el-table-column
align=
"
left
"
label=
"操作"
width=
"160"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-button
size=
"small"
icon=
"el-icon-download"
type=
"text"
@
click=
"downloadFile(scope.row)"
>
下载
</el-button>
<el-button
size=
"small"
icon=
"el-icon-download"
type=
"text"
@
click=
"downloadFile(scope.row)"
>
下载
</el-button>
<el-button
size=
"small"
icon=
"el-icon-delete"
type=
"text"
@
click=
"deleteFile(scope.row)"
>
删除
</el-button>
<el-button
size=
"small"
icon=
"el-icon-delete"
type=
"text"
@
click=
"deleteFile(scope.row)"
>
删除
</el-button>
...
...
web/src/view/login/index.vue
浏览文件 @
f56ff1a3
...
@@ -3,10 +3,19 @@
...
@@ -3,10 +3,19 @@
<div
class=
"login_panle"
>
<div
class=
"login_panle"
>
<div
class=
"login_panle_form"
>
<div
class=
"login_panle_form"
>
<div
class=
"login_panle_form_title"
>
<div
class=
"login_panle_form_title"
>
<img
class=
"login_panle_form_title_logo"
:src=
"$GIN_VUE_ADMIN.appLogo"
alt
>
<img
class=
"login_panle_form_title_logo"
:src=
"$GIN_VUE_ADMIN.appLogo"
alt
/>
<p
class=
"login_panle_form_title_p"
>
{{
$GIN_VUE_ADMIN
.
appName
}}
</p>
<p
class=
"login_panle_form_title_p"
>
{{
$GIN_VUE_ADMIN
.
appName
}}
</p>
</div>
</div>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"rules"
@
keyup.enter=
"submitForm"
>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"rules"
@
keyup.enter=
"submitForm"
>
<el-form-item
prop=
"username"
>
<el-form-item
prop=
"username"
>
<el-input
v-model=
"loginForm.username"
placeholder=
"请输入用户名"
>
<el-input
v-model=
"loginForm.username"
placeholder=
"请输入用户名"
>
<template
#suffix
>
<template
#suffix
>
...
@@ -21,7 +30,10 @@
...
@@ -21,7 +30,10 @@
placeholder=
"请输入密码"
placeholder=
"请输入密码"
>
>
<
template
#suffix
>
<
template
#suffix
>
<i
:class=
"'el-input__icon el-icon-' + lock"
@
click=
"changeLock"
/>
<i
:class=
"'el-input__icon el-icon-' + lock"
@
click=
"changeLock"
/>
</
template
>
</
template
>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
...
@@ -33,12 +45,24 @@
...
@@ -33,12 +45,24 @@
style=
"width: 60%"
style=
"width: 60%"
/>
/>
<div
class=
"vPic"
>
<div
class=
"vPic"
>
<img
v-if=
"picPath"
:src=
"picPath"
alt=
"请输入验证码"
@
click=
"loginVerify()"
>
<img
v-if=
"picPath"
:src=
"picPath"
alt=
"请输入验证码"
@
click=
"loginVerify()"
/>
</div>
</div>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
style=
"width: 46%"
@
click=
"checkInit"
>
前往初始化
</el-button>
<el-button
type=
"primary"
style=
"width: 46%"
@
click=
"checkInit"
<el-button
type=
"primary"
style=
"width: 46%;margin-left:8%"
@
click=
"submitForm"
>
登 录
</el-button>
>
前往初始化
</el-button
>
<el-button
type=
"primary"
style=
"width: 46%; margin-left: 8%"
@
click=
"submitForm"
>
登 录
</el-button
>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
@@ -46,24 +70,25 @@
...
@@ -46,24 +70,25 @@
<div
class=
"login_panle_foot"
>
<div
class=
"login_panle_foot"
>
<div
class=
"links"
>
<div
class=
"links"
>
<a
href=
"http://doc.henrongyi.top/"
>
<a
href=
"http://doc.henrongyi.top/"
>
<img
src=
"@/assets/docs.png"
class=
"link-icon"
>
<img
src=
"@/assets/docs.png"
class=
"link-icon"
/
>
</a>
</a>
<a
href=
"https://www.yuque.com/flipped-aurora/"
>
<a
href=
"https://www.yuque.com/flipped-aurora/"
>
<img
src=
"@/assets/yuque.png"
class=
"link-icon"
>
<img
src=
"@/assets/yuque.png"
class=
"link-icon"
/
>
</a>
</a>
<a
href=
"https://github.com/flipped-aurora/gin-vue-admin"
>
<a
href=
"https://github.com/flipped-aurora/gin-vue-admin"
>
<img
src=
"@/assets/github.png"
class=
"link-icon"
>
<img
src=
"@/assets/github.png"
class=
"link-icon"
/
>
</a>
</a>
<a
href=
"https://space.bilibili.com/322210472"
>
<a
href=
"https://space.bilibili.com/322210472"
>
<img
src=
"@/assets/video.png"
class=
"link-icon"
>
<img
src=
"@/assets/video.png"
class=
"link-icon"
/
>
</a>
</a>
</div>
</div>
<div
class=
"copyright"
>
Copyright
©
{{ curYear }} 💖 flipped-aurora
</div>
<div
class=
"copyright"
>
Copyright
©
{{ curYear }} 💖 flipped-aurora
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
mapActions
}
from
'
vuex
'
import
{
mapActions
}
from
'
vuex
'
import
{
captcha
}
from
'
@/api/user
'
import
{
captcha
}
from
'
@/api/user
'
...
@@ -161,8 +186,12 @@ export default {
...
@@ -161,8 +186,12 @@ export default {
}
}
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
@import
"@/style/newLogin.scss"
;
@import
"@/style/newLogin.scss"
;
</
style
>
</
style
>
web/src/view/superAdmin/api/api.vue
浏览文件 @
f56ff1a3
...
@@ -29,7 +29,6 @@
...
@@ -29,7 +29,6 @@
</div>
</div>
<div
class=
"gva-table-box"
>
<div
class=
"gva-table-box"
>
<div
class=
"gva-btn-list"
>
<div
class=
"gva-btn-list"
>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-plus"
@
click=
"openDialog('addApi')"
>
新增
</el-button>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-plus"
@
click=
"openDialog('addApi')"
>
新增
</el-button>
<el-popover
v-model:visible=
"deleteVisible"
placement=
"top"
width=
"160"
>
<el-popover
v-model:visible=
"deleteVisible"
placement=
"top"
width=
"160"
>
<p>
确定要删除吗?
</p>
<p>
确定要删除吗?
</p>
...
@@ -38,7 +37,7 @@
...
@@ -38,7 +37,7 @@
<el-button
size=
"mini"
type=
"primary"
@
click=
"onDelete"
>
确定
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"onDelete"
>
确定
</el-button>
</div>
</div>
<template
#reference
>
<template
#reference
>
<el-button
icon=
"el-icon-delete"
size=
"mini"
style=
"margin-left: 10px;"
>
删除
</el-button>
<el-button
icon=
"el-icon-delete"
size=
"mini"
:disabled=
"!apis.length"
style=
"margin-left: 10px;"
>
删除
</el-button>
</
template
>
</
template
>
</el-popover>
</el-popover>
</div>
</div>
...
@@ -47,11 +46,11 @@
...
@@ -47,11 +46,11 @@
type=
"selection"
type=
"selection"
width=
"55"
width=
"55"
/>
/>
<el-table-column
align=
"
center
"
label=
"id"
min-width=
"60"
prop=
"ID"
sortable=
"custom"
/>
<el-table-column
align=
"
left
"
label=
"id"
min-width=
"60"
prop=
"ID"
sortable=
"custom"
/>
<el-table-column
align=
"
center
"
label=
"API路径"
min-width=
"150"
prop=
"path"
sortable=
"custom"
/>
<el-table-column
align=
"
left
"
label=
"API路径"
min-width=
"150"
prop=
"path"
sortable=
"custom"
/>
<el-table-column
align=
"
center
"
label=
"API分组"
min-width=
"150"
prop=
"apiGroup"
sortable=
"custom"
/>
<el-table-column
align=
"
left
"
label=
"API分组"
min-width=
"150"
prop=
"apiGroup"
sortable=
"custom"
/>
<el-table-column
align=
"
center
"
label=
"API简介"
min-width=
"150"
prop=
"description"
sortable=
"custom"
/>
<el-table-column
align=
"
left
"
label=
"API简介"
min-width=
"150"
prop=
"description"
sortable=
"custom"
/>
<el-table-column
align=
"
center
"
label=
"请求"
min-width=
"150"
prop=
"method"
sortable=
"custom"
>
<el-table-column
align=
"
left
"
label=
"请求"
min-width=
"150"
prop=
"method"
sortable=
"custom"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<div>
<div>
{{
scope
.
row
.
method
}}
/
{{
methodFiletr
(
scope
.
row
.
method
)
}}
{{
scope
.
row
.
method
}}
/
{{
methodFiletr
(
scope
.
row
.
method
)
}}
...
@@ -59,7 +58,7 @@
...
@@ -59,7 +58,7 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
fixed=
"right"
label=
"操作"
width=
"200"
>
<el-table-column
align=
"
left
"
fixed=
"right"
label=
"操作"
width=
"200"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-button
<el-button
icon=
"el-icon-edit"
icon=
"el-icon-edit"
...
...
web/src/view/superAdmin/authority/authority.vue
浏览文件 @
f56ff1a3
<
template
>
<
template
>
<div
class=
"authority"
>
<div
class=
"authority"
>
<warning-bar
title=
"注:右上角头像下拉可切换角色"
/>
<div
class=
"gva-table-box"
>
<div
class=
"gva-table-box"
>
<div
class=
"gva-btn-list"
>
<div
class=
"gva-btn-list"
>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-plus"
@
click=
"addAuthority('0')"
>
新增角色
</el-button>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-plus"
@
click=
"addAuthority('0')"
>
新增角色
</el-button>
...
@@ -11,8 +12,8 @@
...
@@ -11,8 +12,8 @@
style="width: 100%"
style="width: 100%"
>
>
<el-table-column
label=
"角色ID"
min-width=
"180"
prop=
"authorityId"
/>
<el-table-column
label=
"角色ID"
min-width=
"180"
prop=
"authorityId"
/>
<el-table-column
align=
"
center
"
label=
"角色名称"
min-width=
"180"
prop=
"authorityName"
/>
<el-table-column
align=
"
left
"
label=
"角色名称"
min-width=
"180"
prop=
"authorityName"
/>
<el-table-column
align=
"
center
"
label=
"操作"
width=
"460"
>
<el-table-column
align=
"
left
"
label=
"操作"
width=
"460"
>
<template
#default
="
scope
"
>
<template
#default
="
scope
"
>
<el-button
<el-button
icon=
"el-icon-setting"
icon=
"el-icon-setting"
...
@@ -47,7 +48,6 @@
...
@@ -47,7 +48,6 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<warning-bar
title=
"注:右上角头像下拉可切换角色"
style=
"margin-top:12px;"
/>
</div>
</div>
<!-- 新增角色弹窗 -->
<!-- 新增角色弹窗 -->
<el-dialog
v-model=
"dialogFormVisible"
:title=
"dialogTitle"
>
<el-dialog
v-model=
"dialogFormVisible"
:title=
"dialogTitle"
>
...
...
web/src/view/superAdmin/dictionary/sysDictionary.vue
浏览文件 @
f56ff1a3
<
template
>
<
template
>
<div>
<div>
<warning-bar
title=
"获取字典且缓存方法已在前端utils/dictionary 已经封装完成 不必自己书写 使用方法查看文件内注释"
/>
<div
class=
"gva-search-box"
>
<div
class=
"gva-search-box"
>
<el-form
:inline=
"true"
:model=
"searchInfo"
>
<el-form
:inline=
"true"
:model=
"searchInfo"
>
<el-form-item
label=
"字典名(中)"
>
<el-form-item
label=
"字典名(中)"
>
...
@@ -35,21 +38,21 @@
...
@@ -35,21 +38,21 @@
row-key=
"ID"
row-key=
"ID"
>
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
align=
"
center
"
label=
"日期"
width=
"180"
>
<el-table-column
align=
"
left
"
label=
"日期"
width=
"180"
>
<template
#default
="
scope
"
>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</
template
>
<template
#default
="
scope
"
>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"字典名(中)"
prop=
"name"
width=
"160"
/>
<el-table-column
align=
"
left
"
label=
"字典名(中)"
prop=
"name"
width=
"160"
/>
<el-table-column
align=
"
center
"
label=
"字典名(英)"
prop=
"type"
width=
"120"
/>
<el-table-column
align=
"
left
"
label=
"字典名(英)"
prop=
"type"
width=
"120"
/>
<el-table-column
align=
"
center
"
label=
"状态"
prop=
"status"
width=
"120"
>
<el-table-column
align=
"
left
"
label=
"状态"
prop=
"status"
width=
"120"
>
<
template
#default=
"scope"
>
{{
formatBoolean
(
scope
.
row
.
status
)
}}
</
template
>
<
template
#default=
"scope"
>
{{
formatBoolean
(
scope
.
row
.
status
)
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"描述"
prop=
"desc"
width=
"280"
/>
<el-table-column
align=
"
left
"
label=
"描述"
prop=
"desc"
width=
"280"
/>
<el-table-column
align=
"
center
"
label=
"按钮组"
>
<el-table-column
align=
"
left
"
label=
"按钮组"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-button
size=
"mini"
icon=
"el-icon-document"
type=
"text"
@
click=
"toDetile(scope.row)"
>
详情
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-document"
type=
"text"
@
click=
"toDetile(scope.row)"
>
详情
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-edit"
type=
"text"
@
click=
"updateSysDictionary(scope.row)"
>
变更
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-edit"
type=
"text"
@
click=
"updateSysDictionary(scope.row)"
>
变更
</el-button>
...
@@ -66,10 +69,7 @@
...
@@ -66,10 +69,7 @@
</template>
</template>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<warning-bar
title=
"获取字典且缓存方法已在前端utils/dictionary 已经封装完成 不必自己书写 使用方法查看文件内注释"
style=
"margin-top:12px"
/>
<div
class=
"gva-pagination"
>
<div
class=
"gva-pagination"
>
<el-pagination
<el-pagination
:current-page=
"page"
:current-page=
"page"
...
...
web/src/view/superAdmin/dictionary/sysDictionaryDetail.vue
浏览文件 @
f56ff1a3
...
@@ -32,21 +32,21 @@
...
@@ -32,21 +32,21 @@
row-key=
"ID"
row-key=
"ID"
>
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
align=
"
center
"
label=
"日期"
width=
"180"
>
<el-table-column
align=
"
left
"
label=
"日期"
width=
"180"
>
<template
#default
="
scope
"
>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</
template
>
<template
#default
="
scope
"
>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"展示值"
prop=
"label"
width=
"120"
/>
<el-table-column
align=
"
left
"
label=
"展示值"
prop=
"label"
width=
"120"
/>
<el-table-column
align=
"
center
"
label=
"字典值"
prop=
"value"
width=
"120"
/>
<el-table-column
align=
"
left
"
label=
"字典值"
prop=
"value"
width=
"120"
/>
<el-table-column
align=
"
center
"
label=
"启用状态"
prop=
"status"
width=
"120"
>
<el-table-column
align=
"
left
"
label=
"启用状态"
prop=
"status"
width=
"120"
>
<
template
#default=
"scope"
>
{{
formatBoolean
(
scope
.
row
.
status
)
}}
</
template
>
<
template
#default=
"scope"
>
{{
formatBoolean
(
scope
.
row
.
status
)
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"排序标记"
prop=
"sort"
width=
"120"
/>
<el-table-column
align=
"
left
"
label=
"排序标记"
prop=
"sort"
width=
"120"
/>
<el-table-column
align=
"
center
"
label=
"按钮组"
>
<el-table-column
align=
"
left
"
label=
"按钮组"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-button
size=
"small"
type=
"text"
icon=
"el-icon-edit"
@
click=
"updateSysDictionaryDetail(scope.row)"
>
变更
</el-button>
<el-button
size=
"small"
type=
"text"
icon=
"el-icon-edit"
@
click=
"updateSysDictionaryDetail(scope.row)"
>
变更
</el-button>
<el-popover
:visible=
"scope.row.visible"
placement=
"top"
width=
"160"
>
<el-popover
:visible=
"scope.row.visible"
placement=
"top"
width=
"160"
>
...
...
web/src/view/superAdmin/menu/menu.vue
浏览文件 @
f56ff1a3
...
@@ -7,29 +7,29 @@
...
@@ -7,29 +7,29 @@
<!-- 由于此处菜单跟左侧列表一一对应所以不需要分页 pageSize默认999 -->
<!-- 由于此处菜单跟左侧列表一一对应所以不需要分页 pageSize默认999 -->
<el-table
:data=
"tableData"
row-key=
"ID"
>
<el-table
:data=
"tableData"
row-key=
"ID"
>
<el-table-column
align=
"
center
"
label=
"ID"
min-width=
"100"
prop=
"ID"
/>
<el-table-column
align=
"
left
"
label=
"ID"
min-width=
"100"
prop=
"ID"
/>
<el-table-column
align=
"
center
"
label=
"路由Name"
show-overflow-tooltip
min-width=
"160"
prop=
"name"
/>
<el-table-column
align=
"
left
"
label=
"路由Name"
show-overflow-tooltip
min-width=
"160"
prop=
"name"
/>
<el-table-column
align=
"
center
"
label=
"路由Path"
show-overflow-tooltip
min-width=
"160"
prop=
"path"
/>
<el-table-column
align=
"
left
"
label=
"路由Path"
show-overflow-tooltip
min-width=
"160"
prop=
"path"
/>
<el-table-column
align=
"
center
"
label=
"是否隐藏"
min-width=
"100"
prop=
"hidden"
>
<el-table-column
align=
"
left
"
label=
"是否隐藏"
min-width=
"100"
prop=
"hidden"
>
<template
#default
="
scope
"
>
<template
#default
="
scope
"
>
<span>
{{
scope
.
row
.
hidden
?
"
隐藏
"
:
"
显示
"
}}
</span>
<span>
{{
scope
.
row
.
hidden
?
"
隐藏
"
:
"
显示
"
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"父节点"
min-width=
"90"
prop=
"parentId"
/>
<el-table-column
align=
"
left
"
label=
"父节点"
min-width=
"90"
prop=
"parentId"
/>
<el-table-column
align=
"
center
"
label=
"排序"
min-width=
"70"
prop=
"sort"
/>
<el-table-column
align=
"
left
"
label=
"排序"
min-width=
"70"
prop=
"sort"
/>
<el-table-column
align=
"
center
"
label=
"文件路径"
min-width=
"360"
prop=
"component"
/>
<el-table-column
align=
"
left
"
label=
"文件路径"
min-width=
"360"
prop=
"component"
/>
<el-table-column
align=
"
center
"
label=
"展示名称"
min-width=
"120"
prop=
"authorityName"
>
<el-table-column
align=
"
left
"
label=
"展示名称"
min-width=
"120"
prop=
"authorityName"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<span>
{{
scope
.
row
.
meta
.
title
}}
</span>
<span>
{{
scope
.
row
.
meta
.
title
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"图标"
min-width=
"140"
prop=
"authorityName"
>
<el-table-column
align=
"
left
"
label=
"图标"
min-width=
"140"
prop=
"authorityName"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<i
:class=
"`el-icon-$
{scope.row.meta.icon}`" />
<i
:class=
"`el-icon-$
{scope.row.meta.icon}`" />
<span>
{{
scope
.
row
.
meta
.
icon
}}
</span>
<span>
{{
scope
.
row
.
meta
.
icon
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
fixed=
"right"
label=
"操作"
width=
"300"
>
<el-table-column
align=
"
left
"
fixed=
"right"
label=
"操作"
width=
"300"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-button
<el-button
size=
"mini"
size=
"mini"
...
@@ -138,7 +138,7 @@
...
@@ -138,7 +138,7 @@
@
click=
"addParameter(form)"
@
click=
"addParameter(form)"
>
新增菜单参数
</el-button>
>
新增菜单参数
</el-button>
<el-table
:data=
"form.parameters"
style=
"width: 100%"
>
<el-table
:data=
"form.parameters"
style=
"width: 100%"
>
<el-table-column
align=
"
center
"
prop=
"type"
label=
"参数类型"
width=
"180"
>
<el-table-column
align=
"
left
"
prop=
"type"
label=
"参数类型"
width=
"180"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-select
v-model=
"scope.row.type"
placeholder=
"请选择"
>
<el-select
v-model=
"scope.row.type"
placeholder=
"请选择"
>
<el-option
key=
"query"
value=
"query"
label=
"query"
/>
<el-option
key=
"query"
value=
"query"
label=
"query"
/>
...
@@ -146,21 +146,21 @@
...
@@ -146,21 +146,21 @@
</el-select>
</el-select>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
prop=
"key"
label=
"参数key"
width=
"180"
>
<el-table-column
align=
"
left
"
prop=
"key"
label=
"参数key"
width=
"180"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<div>
<div>
<el-input
v-model=
"scope.row.key"
/>
<el-input
v-model=
"scope.row.key"
/>
</div>
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
prop=
"value"
label=
"参数值"
>
<el-table-column
align=
"
left
"
prop=
"value"
label=
"参数值"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<div>
<div>
<el-input
v-model=
"scope.row.value"
/>
<el-input
v-model=
"scope.row.value"
/>
</div>
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
>
<el-table-column
align=
"
left
"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<div>
<div>
<el-button
<el-button
...
...
web/src/view/superAdmin/operation/sysOperationRecord.vue
浏览文件 @
f56ff1a3
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
<el-button
size=
"mini"
type=
"primary"
@
click=
"onDelete"
>
确定
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"onDelete"
>
确定
</el-button>
</div>
</div>
<template
#reference
>
<template
#reference
>
<el-button
icon=
"el-icon-delete"
size=
"mini"
style=
"margin-left: 10px;"
>
删除
</el-button>
<el-button
icon=
"el-icon-delete"
size=
"mini"
style=
"margin-left: 10px;"
:disabled=
"!multipleSelection.length"
>
删除
</el-button>
</
template
>
</
template
>
</el-popover>
</el-popover>
</div>
</div>
...
@@ -39,26 +39,26 @@
...
@@ -39,26 +39,26 @@
row-key=
"ID"
row-key=
"ID"
@
selection-change=
"handleSelectionChange"
@
selection-change=
"handleSelectionChange"
>
>
<el-table-column
align=
"
center
"
type=
"selection"
width=
"55"
/>
<el-table-column
align=
"
left
"
type=
"selection"
width=
"55"
/>
<el-table-column
align=
"
center
"
label=
"操作人"
width=
"140"
>
<el-table-column
align=
"
left
"
label=
"操作人"
width=
"140"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<div>
{{
scope
.
row
.
user
.
userName
}}
(
{{
scope
.
row
.
user
.
nickName
}}
)
</div>
<div>
{{
scope
.
row
.
user
.
userName
}}
(
{{
scope
.
row
.
user
.
nickName
}}
)
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"日期"
width=
"180"
>
<el-table-column
align=
"
left
"
label=
"日期"
width=
"180"
>
<
template
#default=
"scope"
>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</
template
>
<
template
#default=
"scope"
>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"状态码"
prop=
"status"
width=
"120"
>
<el-table-column
align=
"
left
"
label=
"状态码"
prop=
"status"
width=
"120"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<div>
<div>
<el-tag
type=
"success"
>
{{
scope
.
row
.
status
}}
</el-tag>
<el-tag
type=
"success"
>
{{
scope
.
row
.
status
}}
</el-tag>
</div>
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"请求IP"
prop=
"ip"
width=
"120"
/>
<el-table-column
align=
"
left
"
label=
"请求IP"
prop=
"ip"
width=
"120"
/>
<el-table-column
align=
"
center
"
label=
"请求方法"
prop=
"method"
width=
"120"
/>
<el-table-column
align=
"
left
"
label=
"请求方法"
prop=
"method"
width=
"120"
/>
<el-table-column
align=
"
center
"
label=
"请求路径"
prop=
"path"
width=
"240"
/>
<el-table-column
align=
"
left
"
label=
"请求路径"
prop=
"path"
width=
"240"
/>
<el-table-column
align=
"
center
"
label=
"请求"
prop=
"path"
width=
"80"
>
<el-table-column
align=
"
left
"
label=
"请求"
prop=
"path"
width=
"80"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<div>
<div>
<el-popover
v-if=
"scope.row.body"
placement=
"top-start"
trigger=
"hover"
>
<el-popover
v-if=
"scope.row.body"
placement=
"top-start"
trigger=
"hover"
>
...
@@ -74,7 +74,7 @@
...
@@ -74,7 +74,7 @@
</div>
</div>
</template>
</template>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"响应"
prop=
"path"
width=
"80"
>
<el-table-column
align=
"
left
"
label=
"响应"
prop=
"path"
width=
"80"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<div>
<div>
<el-popover
v-if=
"scope.row.resp"
placement=
"top-start"
trigger=
"hover"
>
<el-popover
v-if=
"scope.row.resp"
placement=
"top-start"
trigger=
"hover"
>
...
@@ -89,7 +89,7 @@
...
@@ -89,7 +89,7 @@
</div>
</div>
</template>
</template>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"按钮组"
>
<el-table-column
align=
"
left
"
label=
"按钮组"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-popover
:visible=
"scope.row.visible"
placement=
"top"
width=
"160"
>
<el-popover
:visible=
"scope.row.visible"
placement=
"top"
width=
"160"
>
<p>
确定要删除吗?
</p>
<p>
确定要删除吗?
</p>
...
...
web/src/view/superAdmin/user/user.vue
浏览文件 @
f56ff1a3
<
template
>
<
template
>
<div>
<div>
<warning-bar
title=
"注:右上角头像下拉可切换角色"
/>
<div
class=
"gva-table-box"
>
<div
class=
"gva-table-box"
>
<div
class=
"gva-btn-list"
>
<div
class=
"gva-btn-list"
>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-plus"
@
click=
"addUser"
>
新增用户
</el-button>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-plus"
@
click=
"addUser"
>
新增用户
</el-button>
</div>
</div>
<el-table
:data=
"tableData"
>
<el-table
:data=
"tableData"
>
<el-table-column
align=
"
center
"
label=
"头像"
min-width=
"50"
>
<el-table-column
align=
"
left
"
label=
"头像"
min-width=
"50"
>
<template
#default
="
scope
"
>
<template
#default
="
scope
"
>
<CustomPic
style=
"margin-top:8px"
:pic-src=
"scope.row.headerImg"
/>
<CustomPic
style=
"margin-top:8px"
:pic-src=
"scope.row.headerImg"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"UUID"
min-width=
"250"
prop=
"uuid"
/>
<el-table-column
align=
"
left
"
label=
"UUID"
min-width=
"250"
prop=
"uuid"
/>
<el-table-column
align=
"
center
"
label=
"用户名"
min-width=
"150"
prop=
"userName"
/>
<el-table-column
align=
"
left
"
label=
"用户名"
min-width=
"150"
prop=
"userName"
/>
<el-table-column
align=
"
center
"
label=
"昵称"
min-width=
"150"
prop=
"nickName"
/>
<el-table-column
align=
"
left
"
label=
"昵称"
min-width=
"150"
prop=
"nickName"
/>
<el-table-column
align=
"
center
"
label=
"用户角色"
min-width=
"150"
>
<el-table-column
align=
"
left
"
label=
"用户角色"
min-width=
"150"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-cascader
<el-cascader
v-model=
"scope.row.authorityIds"
v-model=
"scope.row.authorityIds"
...
@@ -27,7 +28,7 @@
...
@@ -27,7 +28,7 @@
/>
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"操作"
min-width=
"150"
>
<el-table-column
align=
"
left
"
label=
"操作"
min-width=
"150"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-popover
:visible=
"scope.row.visible"
placement=
"top"
width=
"160"
>
<el-popover
:visible=
"scope.row.visible"
placement=
"top"
width=
"160"
>
<p>
确定要删除此用户吗
</p>
<p>
确定要删除此用户吗
</p>
...
@@ -42,7 +43,6 @@
...
@@ -42,7 +43,6 @@
</template>
</template>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<warning-bar
title=
"注:右上角头像下拉可切换角色"
style=
"margin-top:12px;"
/>
<div
class=
"gva-pagination"
>
<div
class=
"gva-pagination"
>
<el-pagination
<el-pagination
:current-page=
"page"
:current-page=
"page"
...
...
web/src/view/systemTools/autoCode/index.vue
浏览文件 @
f56ff1a3
...
@@ -85,18 +85,18 @@
...
@@ -85,18 +85,18 @@
<el-button
size=
"mini"
type=
"primary"
@
click=
"editAndAddField()"
>
新增Field
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"editAndAddField()"
>
新增Field
</el-button>
</div>
</div>
<el-table
:data=
"form.fields"
>
<el-table
:data=
"form.fields"
>
<el-table-column
align=
"
center
"
type=
"index"
label=
"序列"
width=
"100"
/>
<el-table-column
align=
"
left
"
type=
"index"
label=
"序列"
width=
"100"
/>
<el-table-column
align=
"
center
"
prop=
"fieldName"
label=
"Field名"
/>
<el-table-column
align=
"
left
"
prop=
"fieldName"
label=
"Field名"
/>
<el-table-column
align=
"
center
"
prop=
"fieldDesc"
label=
"中文名"
/>
<el-table-column
align=
"
left
"
prop=
"fieldDesc"
label=
"中文名"
/>
<el-table-column
align=
"
center
"
prop=
"fieldJson"
label=
"FieldJson"
/>
<el-table-column
align=
"
left
"
prop=
"fieldJson"
label=
"FieldJson"
/>
<el-table-column
align=
"
center
"
prop=
"fieldType"
label=
"Field数据类型"
width=
"130"
/>
<el-table-column
align=
"
left
"
prop=
"fieldType"
label=
"Field数据类型"
width=
"130"
/>
<el-table-column
align=
"
center
"
prop=
"dataType"
label=
"数据库字段类型"
width=
"130"
/>
<el-table-column
align=
"
left
"
prop=
"dataType"
label=
"数据库字段类型"
width=
"130"
/>
<el-table-column
align=
"
center
"
prop=
"dataTypeLong"
label=
"数据库字段长度"
width=
"130"
/>
<el-table-column
align=
"
left
"
prop=
"dataTypeLong"
label=
"数据库字段长度"
width=
"130"
/>
<el-table-column
align=
"
center
"
prop=
"columnName"
label=
"数据库字段"
width=
"130"
/>
<el-table-column
align=
"
left
"
prop=
"columnName"
label=
"数据库字段"
width=
"130"
/>
<el-table-column
align=
"
center
"
prop=
"comment"
label=
"数据库字段描述"
width=
"130"
/>
<el-table-column
align=
"
left
"
prop=
"comment"
label=
"数据库字段描述"
width=
"130"
/>
<el-table-column
align=
"
center
"
prop=
"fieldSearchType"
label=
"搜索条件"
width=
"130"
/>
<el-table-column
align=
"
left
"
prop=
"fieldSearchType"
label=
"搜索条件"
width=
"130"
/>
<el-table-column
align=
"
center
"
prop=
"dictType"
label=
"字典"
width=
"130"
/>
<el-table-column
align=
"
left
"
prop=
"dictType"
label=
"字典"
width=
"130"
/>
<el-table-column
align=
"
center
"
label=
"操作"
width=
"300"
>
<el-table-column
align=
"
left
"
label=
"操作"
width=
"300"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-button
<el-button
size=
"mini"
size=
"mini"
...
...
web/src/view/systemTools/autoCodeAdmin/index.vue
浏览文件 @
f56ff1a3
...
@@ -9,14 +9,14 @@
...
@@ -9,14 +9,14 @@
type=
"selection"
type=
"selection"
width=
"55"
width=
"55"
/>
/>
<el-table-column
align=
"
center
"
label=
"id"
width=
"60"
prop=
"ID"
/>
<el-table-column
align=
"
left
"
label=
"id"
width=
"60"
prop=
"ID"
/>
<el-table-column
align=
"
center
"
label=
"日期"
width=
"180"
>
<el-table-column
align=
"
left
"
label=
"日期"
width=
"180"
>
<template
#default
="
scope
"
>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</
template
>
<template
#default
="
scope
"
>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"结构体名"
min-width=
"150"
prop=
"structName"
/>
<el-table-column
align=
"
left
"
label=
"结构体名"
min-width=
"150"
prop=
"structName"
/>
<el-table-column
align=
"
center
"
label=
"结构体描述"
min-width=
"150"
prop=
"structCNName"
/>
<el-table-column
align=
"
left
"
label=
"结构体描述"
min-width=
"150"
prop=
"structCNName"
/>
<el-table-column
align=
"
center
"
label=
"表名称"
min-width=
"150"
prop=
"tableName"
/>
<el-table-column
align=
"
left
"
label=
"表名称"
min-width=
"150"
prop=
"tableName"
/>
<el-table-column
align=
"
center
"
label=
"回滚标记"
min-width=
"150"
prop=
"flag"
>
<el-table-column
align=
"
left
"
label=
"回滚标记"
min-width=
"150"
prop=
"flag"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<el-tag
<el-tag
v-if=
"scope.row.flag"
v-if=
"scope.row.flag"
...
@@ -36,7 +36,7 @@
...
@@ -36,7 +36,7 @@
</el-tag>
</el-tag>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"
center
"
label=
"操作"
min-width=
"180"
>
<el-table-column
align=
"
left
"
label=
"操作"
min-width=
"180"
>
<
template
#default=
"scope"
>
<
template
#default=
"scope"
>
<div>
<div>
<el-button
size=
"mini"
type=
"text"
:disabled=
"scope.row.flag === 1"
@
click=
"rollback(scope.row)"
>
回滚
</el-button>
<el-button
size=
"mini"
type=
"text"
:disabled=
"scope.row.flag === 1"
@
click=
"rollback(scope.row)"
>
回滚
</el-button>
...
...
web/yarn.lock
浏览文件 @
f56ff1a3
...
@@ -1083,10 +1083,10 @@
...
@@ -1083,10 +1083,10 @@
"@babel/helper-validator-identifier" "^7.14.9"
"@babel/helper-validator-identifier" "^7.14.9"
to-fast-properties "^2.0.0"
to-fast-properties "^2.0.0"
"@element-plus/icons@^0.0.11":
"@element-plus/icons@
0.0.11", "@element-plus/icons@
^0.0.11":
version "0.0.11"
version "0.0.11"
resolved "https://registry.
nlark.com/@element-plus/icons/download/@element-plus
/icons-0.0.11.tgz#9b187c002774548b911850d17fa5fc2f9a515f57"
resolved "https://registry.
yarnpkg.com/@element-plus/icons/-
/icons-0.0.11.tgz#9b187c002774548b911850d17fa5fc2f9a515f57"
integrity sha
1-mxh8ACd0VIuRGFDRf6X8L5pRX1c
=
integrity sha
512-iKQXSxXu131Ai+I9Ymtcof9WId7kaXvB1+WRfAfpQCW7UiAMYgdNDqb/u0hgTo2Yq3MwC4MWJnNuTBEpG8r7+A=
=
"@hapi/address@2.x.x":
"@hapi/address@2.x.x":
version "2.1.4"
version "2.1.4"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录