Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
confucius
Commits
f4a28d4c
Commit
f4a28d4c
authored
Dec 01, 2020
by
liudong1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
cc999715
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1737 additions
and
161 deletions
+1737
-161
quasar.conf.js
quasar.conf.js
+3
-1
App.vue
src/App.vue
+1
-1
index.js
src/api/system/index.js
+12
-0
msg.js
src/api/system/msg.js
+89
-0
sitecfg.js
src/api/system/sitecfg.js
+25
-0
ali.png
src/assets/images/myimg/ali.png
+0
-0
default.png
src/assets/images/myimg/default.png
+0
-0
failed.png
src/assets/images/myimg/failed.png
+0
-0
gou.png
src/assets/images/myimg/gou.png
+0
-0
success.png
src/assets/images/myimg/success.png
+0
-0
tencent.png
src/assets/images/myimg/tencent.png
+0
-0
select-search.vue
src/components/common/select-search.vue
+122
-0
dept-form.vue
src/components/system/dept-form.vue
+31
-6
menufunction-form.vue
src/components/system/menufunction-form.vue
+7
-3
post-form.vue
src/components/system/post-form.vue
+63
-3
role-form.vue
src/components/system/role-form.vue
+266
-75
site-form.vue
src/components/system/site-form.vue
+158
-0
sysuser.vue
src/pages/school/sysuser.vue
+66
-60
dept.vue
src/pages/system/dept.vue
+42
-11
menufunction.vue
src/pages/system/menufunction.vue
+1
-1
msgmanage.vue
src/pages/system/msgmanage.vue
+679
-0
siteconfig.vue
src/pages/system/siteconfig.vue
+162
-0
routes.js
src/router/routes.js
+10
-0
No files found.
quasar.conf.js
View file @
f4a28d4c
...
@@ -49,7 +49,8 @@ module.exports = function(ctx) {
...
@@ -49,7 +49,8 @@ module.exports = function(ctx) {
env
:
ctx
.
dev
?
{
env
:
ctx
.
dev
?
{
//http://192.168.1.27:8300/api
//http://192.168.1.27:8300/api
//https://localhost:5001/api
//https://localhost:5001/api
API
:
'http://192.168.1.27:8300/api'
// API: 'http://192.168.1.27:8300/api'
API
:
'http://192.168.1.48:8017/api'
}
:
{
}
:
{
API
:
'https://prod.api.com'
API
:
'https://prod.api.com'
},
},
...
@@ -147,6 +148,7 @@ module.exports = function(ctx) {
...
@@ -147,6 +148,7 @@ module.exports = function(ctx) {
'QCheckbox'
,
'QCheckbox'
,
'QTree'
,
'QTree'
,
'QOptionGroup'
,
'QOptionGroup'
,
'QRadio'
],
],
// directives: [],
// directives: [],
...
...
src/App.vue
View file @
f4a28d4c
...
@@ -12,7 +12,7 @@ export default {
...
@@ -12,7 +12,7 @@ export default {
<
style
>
<
style
>
@import
url('~assets/css/font.css')
;
@import
url('~assets/css/font.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
q3ogqen6wec
.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
32amtmfykbo
.css')
;
html
,
html
,
body
,
body
,
...
...
src/api/system/index.js
View file @
f4a28d4c
...
@@ -298,3 +298,15 @@ export function SetRolePermission(data) {
...
@@ -298,3 +298,15 @@ export function SetRolePermission(data) {
data
data
})
})
}
}
/**
* 获取短信配置发送状态下拉
*/
export
function
getConfigStatus
(
data
)
{
return
request
({
url
:
'/Public/GetStoreTypeEnumList'
,
method
:
'post'
,
data
});
}
src/api/system/
dept
.js
→
src/api/system/
msg
.js
View file @
f4a28d4c
import
request
from
'../../utils/request'
import
request
from
'../../utils/request'
/**
/**
* 获取
部门
分页列表
* 获取
短信流水
分页列表
*/
*/
export
function
get
Dept
Page
(
data
)
{
export
function
get
Msg
Page
(
data
)
{
return
request
({
return
request
({
url
:
'/User/GetDept
PageList'
,
url
:
'/Msg/GetMsgLog
PageList'
,
method
:
'post'
,
method
:
'post'
,
data
data
});
});
}
}
/**
/**
* 获取
部门
列表
* 获取
短信配置分页
列表
*/
*/
export
function
get
DeptList
(
data
)
{
export
function
get
ConfigPage
(
data
)
{
return
request
({
return
request
({
url
:
'/
User/GetDept
List'
,
url
:
'/
Msg/GetMsgBasePage
List'
,
method
:
'post'
,
method
:
'post'
,
data
data
});
});
}
}
/**
/**
*
获取部门树形列表
*
新增修改短信配置
*/
*/
export
function
getDeptTree
(
data
)
{
export
function
EditMsgConfig
(
data
)
{
return
request
({
return
request
({
url
:
'/
User/GetDeptTre
e'
,
url
:
'/
Msg/SetMsgBas
e'
,
method
:
'post'
,
method
:
'post'
,
data
data
});
});
}
}
/**
/**
*
获取组织机构图
*
根据ID获取配置信息
*/
*/
export
function
getOrganizationChar
t
(
data
)
{
export
function
GetMsgBaseLis
t
(
data
)
{
return
request
({
return
request
({
url
:
'/
User/GetOrganizationChar
t'
,
url
:
'/
Msg/GetMsgBaseLis
t'
,
method
:
'post'
,
method
:
'post'
,
data
data
});
});
}
}
/**
/**
*
新增修改部门信息
*
获取短信设置列表
*/
*/
export
function
saveDeptInfo
(
data
)
{
export
function
GetMsgBaseTemplatePageList
(
data
)
{
return
request
({
return
request
({
url
:
'/
User/SetDep
t'
,
url
:
'/
Msg/GetMsgBaseTemplatePageLis
t'
,
method
:
'post'
,
method
:
'post'
,
data
data
});
});
}
}
/**
/**
* 获取
部门信息
* 获取
短信设置模板类型
*/
*/
export
function
getDeptInfo
(
data
)
{
export
function
GetBaseTemplateTypeEnumList
(
data
)
{
return
request
({
return
request
({
url
:
'/
User/GetDep
t'
,
url
:
'/
Msg/GetBaseTemplateTypeEnumLis
t'
,
method
:
'post'
,
method
:
'post'
,
data
data
});
});
}
}
/**
/**
*
设置部门状态
*
短信设置 保存数据
*/
*/
export
function
setDeptStatusInfo
(
data
)
{
export
function
SetMsgBaseTemplate
(
data
)
{
return
request
({
return
request
({
url
:
'/
User/RemoveDept
'
,
url
:
'/
Msg/SetMsgBaseTemplate
'
,
method
:
'post'
,
method
:
'post'
,
data
data
});
});
}
}
src/api/system/sitecfg.js
0 → 100644
View file @
f4a28d4c
import
request
from
'../../utils/request'
/**
* 获取文件站点配置列表
*/
export
function
getSiteConfig
(
data
)
{
return
request
({
url
:
'/Public/GetFileStoreList'
,
method
:
'post'
,
data
});
}
/**
* 文件站点配置新增修改
*/
export
function
setSiteConfig
(
data
)
{
return
request
({
url
:
'/Public/AddOrUpdateFileStore'
,
method
:
'post'
,
data
});
}
src/assets/images/myimg/ali.png
0 → 100644
View file @
f4a28d4c
839 Bytes
src/assets/images/myimg/default.png
0 → 100644
View file @
f4a28d4c
2.77 KB
src/assets/images/myimg/failed.png
0 → 100644
View file @
f4a28d4c
1.28 KB
src/assets/images/myimg/gou.png
0 → 100644
View file @
f4a28d4c
895 Bytes
src/assets/images/myimg/success.png
0 → 100644
View file @
f4a28d4c
1.17 KB
src/assets/images/myimg/tencent.png
0 → 100644
View file @
f4a28d4c
804 Bytes
src/components/common/select-search.vue
0 → 100644
View file @
f4a28d4c
<
template
>
<q-select
filled
stack-label
:option-value=
"optionValue"
:option-label=
"optionLabel"
v-model=
"vdata_model"
ref=
"DeptTier"
:options=
"newData"
:label=
"label"
:class=
"classStr"
:dense =
'densetype'
:reactive-rules =
'reactiveRules'
emit-value
map-options
clearable
:use-input=
"useInput"
@
input=
"resetSearch"
@
filter=
"filterFn"
>
<template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
未找到相关数据
</q-item-section>
</q-item>
</
template
>
</q-select>
</template>
<
script
>
export
default
{
name
:
"select-search"
,
props
:
{
//样式字符串
classStr
:
{
type
:
String
,
default
:
''
},
//选中数据
vModel
:{
type
:
String
,
default
:
''
},
//下拉的数据
Data
:
{
type
:
Array
,
default
:
[]
},
//是否紧凑
densetype
:{
type
:
Boolean
,
default
:
false
},
//是否能输入
useInput
:{
type
:
Boolean
,
default
:
false
},
//是否验证
reactiveRules
:{
type
:
Boolean
,
default
:
false
},
//选项的值
optionValue
:
{
type
:
String
,
default
:
''
},
//选项的标签
optionLabel
:
{
type
:
String
,
default
:
''
},
//名称
label
:{
type
:
String
,
default
:
''
},
//指定的下拉 当前是那个下啦模块
type
:{
type
:
String
,
default
:
''
}
},
data
(){
return
{
vdata_model
:
''
,
newData
:[]
}
},
created
(){
this
.
vdata_model
=
this
.
vModel
.
toString
();
//赋值
this
.
newData
=
this
.
Data
},
methods
:{
resetSearch
(){
let
data
=
this
.
vdata_model
!=
null
?
this
.
vdata_model
.
toString
():
''
;
this
.
$emit
(
'returnData'
,
data
,
this
.
type
);
},
filterFn
(
val
,
update
)
{
update
(()
=>
{
let
Name
=
this
.
optionLabel
if
(
val
===
''
)
{
this
.
newData
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
Data
))
}
else
{
const
needle
=
val
.
toLowerCase
()
let
that
=
this
that
.
newData
=
[]
that
.
newData
=
that
.
Data
.
filter
(
v
=>
v
[
Name
].
indexOf
(
needle
)
>
-
1
)
}
})
},
}
}
</
script
>
<
style
scoped
>
</
style
>
src/components/system/dept-form.vue
View file @
f4a28d4c
...
@@ -7,9 +7,25 @@
...
@@ -7,9 +7,25 @@
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6"
>
部门信息
</div>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6"
>
部门信息
</div>
<div
class=
"row wrap"
>
<div
class=
"row wrap"
>
<q-select
filled
stack-label
option-value=
"SId"
option-label=
"SName"
v-model=
"objOption.School_Id"
<!--
<q-select
filled
stack-label
option-value=
"SId"
option-label=
"SName"
v-model=
"objOption.School_Id"
--
>
ref=
"School_Id"
:options=
"schoolList"
label=
"所属校区"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
<!-- ref="School_Id" :options="schoolList" label="所属校区" :dense="false" class="col-6 q-pr-lg q-pb-lg" emit-value-->
map-options
:rules=
"[val => !!val || '请选择所属校区']"
/>
<!-- map-options />-->
<div
class=
"col-6"
>
<selectSearch
classStr=
"col-12 q-pr-lg q-pb-lg"
:Data=
'schoolList'
optionValue=
"SId"
optionLabel=
"SName"
:densetype=
"false"
:vModel=
"objOption.School_Id"
label=
"所属校区"
@
returnData=
"returnData"
:useInput=
"true"
:reactiveRules=
"false"
type=
"1"
>
</selectSearch>
</div>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"objOption.DeptName"
ref=
"DeptName"
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"objOption.DeptName"
ref=
"DeptName"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"部门名称"
:rules=
"[val => !!val || '请填写部门名称']"
/>
class=
"col-6 q-pr-lg q-pb-lg"
label=
"部门名称"
:rules=
"[val => !!val || '请填写部门名称']"
/>
<q-select
filled
stack-label
option-value=
"value"
option-label=
"label"
v-model=
"objOption.DeptTier"
<q-select
filled
stack-label
option-value=
"value"
option-label=
"label"
v-model=
"objOption.DeptTier"
...
@@ -52,6 +68,8 @@
...
@@ -52,6 +68,8 @@
<
script
>
<
script
>
import
selectTree
from
'../common/select-tree'
import
selectTree
from
'../common/select-tree'
import
selectSearch
from
'../../components/common/select-search'
import
{
import
{
getDeptTree
,
getDeptTree
,
saveDeptInfo
,
saveDeptInfo
,
...
@@ -74,7 +92,8 @@
...
@@ -74,7 +92,8 @@
}
}
},
},
components
:
{
components
:
{
selectTree
selectTree
,
selectSearch
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -86,7 +105,7 @@
...
@@ -86,7 +105,7 @@
DeptTel
:
""
,
//部门联系电话
DeptTel
:
""
,
//部门联系电话
ManagerIds
:
""
,
//部门负责人编号
ManagerIds
:
""
,
//部门负责人编号
Status
:
0
,
//状态(0-正常,1-禁用),
Status
:
0
,
//状态(0-正常,1-禁用),
School_Id
:
0
,
//校区编号
School_Id
:
''
,
//校区编号
DeptTier
:
0
,
//部门层级
DeptTier
:
0
,
//部门层级
DeptSort
:
0
,
//部门排序
DeptSort
:
0
,
//部门排序
},
},
...
@@ -193,7 +212,7 @@
...
@@ -193,7 +212,7 @@
this
.
objOption
.
Status
=
0
;
this
.
objOption
.
Status
=
0
;
this
.
objOption
.
DeptSort
=
0
;
this
.
objOption
.
DeptSort
=
0
;
this
.
objOption
.
DeptTier
=
0
;
this
.
objOption
.
DeptTier
=
0
;
this
.
objOption
.
School_Id
=
0
;
this
.
objOption
.
School_Id
=
''
;
this
.
tempManager
=
[];
this
.
tempManager
=
[];
}
}
},
},
...
@@ -232,6 +251,12 @@
...
@@ -232,6 +251,12 @@
}).
catch
(()
=>
{
}).
catch
(()
=>
{
this
.
saveLoading
=
false
this
.
saveLoading
=
false
})
})
},
returnData
(
data
,
type
){
if
(
type
==
1
){
this
.
objOption
.
School_Id
=
data
;
}
}
}
},
},
}
}
...
...
src/components/system/menufunction-form.vue
View file @
f4a28d4c
...
@@ -39,6 +39,10 @@
...
@@ -39,6 +39,10 @@
saveObj
:
{
saveObj
:
{
type
:
Object
,
type
:
Object
,
default
:
null
default
:
null
},
paramObj
:{
type
:
Number
,
default
:
0
}
}
},
},
data
()
{
data
()
{
...
@@ -46,7 +50,7 @@
...
@@ -46,7 +50,7 @@
persistent
:
true
,
persistent
:
true
,
objOption
:
{
objOption
:
{
Id
:
0
,
//主键编号
Id
:
0
,
//主键编号
Menu
_
Id
:
0
,
//菜单编号
MenuId
:
0
,
//菜单编号
FunctionName
:
""
,
//权限名称
FunctionName
:
""
,
//权限名称
FunctionCode
:
""
,
//权限编号
FunctionCode
:
""
,
//权限编号
Remarks
:
""
,
//权限备注
Remarks
:
""
,
//权限备注
...
@@ -67,7 +71,7 @@
...
@@ -67,7 +71,7 @@
Id
:
this
.
saveObj
.
Id
Id
:
this
.
saveObj
.
Id
}).
then
(
res
=>
{
}).
then
(
res
=>
{
this
.
objOption
.
Id
=
res
.
Data
.
Id
;
this
.
objOption
.
Id
=
res
.
Data
.
Id
;
this
.
objOption
.
Menu
_Id
=
res
.
Data
.
Menu_
Id
;
this
.
objOption
.
Menu
Id
=
res
.
Data
.
Menu
Id
;
this
.
objOption
.
FunctionName
=
res
.
Data
.
FunctionName
;
this
.
objOption
.
FunctionName
=
res
.
Data
.
FunctionName
;
this
.
objOption
.
FunctionCode
=
res
.
Data
.
FunctionCode
;
this
.
objOption
.
FunctionCode
=
res
.
Data
.
FunctionCode
;
this
.
objOption
.
Remarks
=
res
.
Data
.
Remarks
;
this
.
objOption
.
Remarks
=
res
.
Data
.
Remarks
;
...
@@ -77,7 +81,7 @@
...
@@ -77,7 +81,7 @@
}
else
{
}
else
{
this
.
optionTitle
=
"新增菜单功能权限"
this
.
optionTitle
=
"新增菜单功能权限"
this
.
objOption
.
Id
=
0
;
this
.
objOption
.
Id
=
0
;
this
.
objOption
.
Menu
_Id
=
0
;
this
.
objOption
.
Menu
Id
=
this
.
paramObj
;
this
.
objOption
.
FunctionName
=
""
;
this
.
objOption
.
FunctionName
=
""
;
this
.
objOption
.
FunctionCode
=
""
;
this
.
objOption
.
FunctionCode
=
""
;
this
.
objOption
.
Remarks
=
""
;
this
.
objOption
.
Remarks
=
""
;
...
...
src/components/system/post-form.vue
View file @
f4a28d4c
<
style
>
.post-form
.tranbox
.el-transfer-panel
{
width
:
300px
;
}
.post-form
.tranbox
.el-button
{
padding
:
7px
10px
;
}
</
style
>
<
template
>
<
template
>
<q-dialog
v-model=
"persistent"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-dialog
v-model=
"persistent"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 800px;max-width:900px;"
>
<q-card
style=
"width: 800px;max-width:900px;"
class=
"post-form"
>
<q-card-section>
<q-card-section>
<div
class=
"text-h6"
>
{{
objOption
.
MenuId
==
0
?
'新增岗位信息'
:
'修改岗位信息'
}}
</div>
<div
class=
"text-h6"
>
{{
objOption
.
MenuId
==
0
?
'新增岗位信息'
:
'修改岗位信息'
}}
</div>
</q-card-section>
</q-card-section>
...
@@ -18,6 +26,21 @@
...
@@ -18,6 +26,21 @@
<div
class=
"text-grey-6 text-caption"
>
注意:关闭后,岗位将无法正常使用.
</div>
<div
class=
"text-grey-6 text-caption"
>
注意:关闭后,岗位将无法正常使用.
</div>
</div>
</div>
</div>
</div>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6"
>
绑定角色
</div>
<div
class=
"row wrap tranbox"
>
<template>
<el-transfer
filterable
:filter-method=
"filterMethod"
filter-placeholder=
"请输入城市拼音"
:props=
"
{key: 'RoleId',label: 'RoleName'}"
v-model="value"
:titles="['可选角色', '已选角色']"
:data="data">
</el-transfer>
</
template
>
</div>
</q-card-section>
</q-card-section>
<q-separator
/>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-card-actions
align=
"right"
class=
"bg-white"
>
...
@@ -39,6 +62,11 @@
...
@@ -39,6 +62,11 @@
savePostInfo
savePostInfo
}
}
from
'../../api/system/post'
from
'../../api/system/post'
//角色相关
import
{
queryRoleDropdown
}
from
'../../api/system/index'
export
default
{
export
default
{
props
:
{
props
:
{
saveObj
:
{
saveObj
:
{
...
@@ -57,22 +85,36 @@
...
@@ -57,22 +85,36 @@
PostName
:
""
,
//岗位名称
PostName
:
""
,
//岗位名称
RB_Dept_Id
:
0
,
//所属部门
RB_Dept_Id
:
0
,
//所属部门
Status
:
0
,
//状态(0-正常,1-禁用),
Status
:
0
,
//状态(0-正常,1-禁用),
PostRoleList
:
[],
//岗位角色列表
},
},
optionTitle
:
""
,
optionTitle
:
""
,
returnString
:
[],
returnString
:
[],
//岗位树形列表
//岗位树形列表
DeptTreeList
:
[],
DeptTreeList
:
[],
saveLoading
:
false
,
saveLoading
:
false
,
PersionList
:
[],
RoleList
:
[],
//角色列表
data
:
[],
value
:
[],
filterMethod
(
query
,
item
)
{
//根据名称搜索
return
item
.
RoleName
.
indexOf
(
query
)
>
-
1
;
}
}
}
},
},
created
()
{
created
()
{
this
.
getRoleList
();
this
.
queryDeptTree
();
this
.
queryDeptTree
();
},
},
mounted
()
{
mounted
()
{
this
.
initObj
()
this
.
initObj
()
},
},
methods
:
{
methods
:
{
//获取角色列表
getRoleList
()
{
queryRoleDropdown
({}).
then
(
res
=>
{
this
.
RoleList
=
res
.
Data
;
this
.
data
=
res
.
Data
;
})
},
getChild
(
menuArray
)
{
getChild
(
menuArray
)
{
var
tempStr
=
""
;
var
tempStr
=
""
;
if
(
menuArray
&&
menuArray
!=
''
)
{
if
(
menuArray
&&
menuArray
!=
''
)
{
...
@@ -99,6 +141,12 @@
...
@@ -99,6 +141,12 @@
this
.
returnString
.
push
(
this
.
objOption
.
RB_Dept_Id
);
this
.
returnString
.
push
(
this
.
objOption
.
RB_Dept_Id
);
this
.
objOption
.
PostName
=
res
.
Data
.
PostName
;
this
.
objOption
.
PostName
=
res
.
Data
.
PostName
;
this
.
objOption
.
Status
=
res
.
Data
.
Status
;
this
.
objOption
.
Status
=
res
.
Data
.
Status
;
if
(
res
.
Data
.
PostRoleList
.
length
>
0
){
res
.
Data
.
PostRoleList
.
forEach
(
x
=>
{
this
.
value
.
push
(
x
.
RoleId
)
})
}
})
})
this
.
optionTitle
=
"修改岗位信息"
this
.
optionTitle
=
"修改岗位信息"
}
else
{
}
else
{
...
@@ -109,6 +157,7 @@
...
@@ -109,6 +157,7 @@
this
.
objOption
.
Status
=
0
;
this
.
objOption
.
Status
=
0
;
}
}
},
},
//关闭弹窗
//关闭弹窗
closeSaveForm
()
{
closeSaveForm
()
{
this
.
$emit
(
'close'
)
this
.
$emit
(
'close'
)
...
@@ -116,7 +165,18 @@
...
@@ -116,7 +165,18 @@
},
},
//保存岗位
//保存岗位
savePost
()
{
savePost
()
{
this
.
saveLoading
=
true
var
tempRole
=
[];
if
(
this
.
RoleList
&&
this
.
RoleList
.
length
>
0
)
{
this
.
RoleList
.
forEach
(
x
=>
{
this
.
value
.
forEach
(
j
=>
{
if
(
x
.
RoleId
==
j
){
tempRole
.
push
(
x
)
}
})
})
}
this
.
objOption
.
PostRoleList
=
tempRole
;
this
.
saveLoading
=
true
;
savePostInfo
(
this
.
objOption
).
then
(
res
=>
{
savePostInfo
(
this
.
objOption
).
then
(
res
=>
{
this
.
saveLoading
=
false
this
.
saveLoading
=
false
this
.
$q
.
notify
({
this
.
$q
.
notify
({
...
...
src/components/system/role-form.vue
View file @
f4a28d4c
This diff is collapsed.
Click to expand it.
src/components/system/site-form.vue
0 → 100644
View file @
f4a28d4c
<
style
>
</
style
>
<
template
>
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 800px;max-width:900px;"
>
<q-card-section>
<div
class=
"text-h6"
>
{{
objOption
.
StoreType
==
0
?
'新增存储桶'
:
'修改存储桶'
}}
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<div
class=
"row wrap"
>
<div
class=
"col-12"
style=
"margin-bottom:10px;"
>
存储位置
<q-radio
v-model=
"objOption.StoreType"
v-for=
"(item,index) in statusData"
:key=
"index"
:val=
"item.Id"
:label=
"item.Name"
/>
</div>
<q-input
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"objOption.Bucket"
ref=
"Bucket"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"空间名称(Bucket)"
:rules=
"[val => !!val || '请填写空间名称']"
/>
<q-input
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"objOption.Region"
ref=
"Region"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"所属地域"
:rules=
"[val => !!val || '请填写所属地域']"
/>
<q-input
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"objOption.SecretId"
ref=
"SecretId"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"SecretId"
:rules=
"[val => !!val || '请填写SecretId']"
/>
<q-input
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"objOption.SecretKey"
ref=
"SecretKey"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"SecretKey"
:rules=
"[val => !!val || '请填写SecretKey']"
/>
<q-input
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"objOption.CustomDomain"
ref=
"CustomDomain"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"自定义域名"
/>
</div>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
color=
"dark"
style=
"font-weight:400 !important"
@
click=
"closeSaveForm"
/>
<q-btn
label=
"立即提交"
color=
"accent"
class=
"q-px-md"
style=
"font-weight:400 !important"
:loading=
"saveLoading"
@
click=
"setConfig"
/>
</q-card-actions>
</q-card>
</q-dialog>
</
template
>
<
script
>
import
{
setSiteConfig
,
}
from
'../../api/system/sitecfg'
import
{
getConfigStatus
,
}
from
'../../api/system/index'
export
default
{
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
persistent
:
true
,
saveLoading
:
false
,
objOption
:
{
ID
:
0
,
StoreType
:
0
,
Bucket
:
''
,
Region
:
''
,
CustomDomain
:
''
,
SecretId
:
''
,
SecretKey
:
''
,
ImgStyle
:
''
,
},
statusData
:[],
//状态数据
}
},
computed
:
{
},
mounted
()
{
if
(
this
.
saveObj
){
this
.
objOption
.
ID
=
this
.
saveObj
.
ID
;
this
.
objOption
.
StoreType
=
this
.
saveObj
.
StoreType
;
this
.
objOption
.
Bucket
=
this
.
saveObj
.
Bucket
;
this
.
objOption
.
Region
=
this
.
saveObj
.
Region
;
this
.
objOption
.
CustomDomain
=
this
.
saveObj
.
CustomDomain
;
this
.
objOption
.
SecretId
=
this
.
saveObj
.
SecretId
;
this
.
objOption
.
SecretKey
=
this
.
saveObj
.
SecretKey
;
}
this
.
getStatus
();
},
methods
:
{
//保存数据
setConfig
()
{
if
(
this
.
objOption
.
StoreType
==
0
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请选择存储位置`
})
return
;
}
if
(
this
.
objOption
.
Bucket
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请填写空间域名`
})
return
;
}
if
(
this
.
objOption
.
Region
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请填写所属地域`
})
return
;
}
if
(
this
.
objOption
.
SecretId
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请填写SecretId`
})
return
;
}
if
(
this
.
objOption
.
SecretKey
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请填写SecretKey`
})
return
;
}
setSiteConfig
(
this
.
objOption
).
then
(
res
=>
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
})
this
.
$emit
(
"success"
);
this
.
closeSaveForm
();
}).
catch
(()
=>
{
this
.
saveLoading
=
false
})
},
//关闭弹窗
closeSaveForm
()
{
this
.
$emit
(
'close'
)
this
.
persistent
=
false
},
//获去下拉状态
getStatus
(){
getConfigStatus
().
then
(
res
=>
{
if
(
res
.
Code
==
1
){
this
.
statusData
=
res
.
Data
;
}
})
},
},
}
</
script
>
src/pages/school/sysuser.vue
View file @
f4a28d4c
...
@@ -3,19 +3,19 @@
...
@@ -3,19 +3,19 @@
<div
class=
"page-search row items-center"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.MName"
label=
"姓名"
/>
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.EmployeeName"
</div>
label=
"员工姓名/账号"
/>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.MTel"
label=
"电话"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
clearable
filled
stack-label
option-value=
"SId"
option-label=
"SName"
<q-select
@
input=
"resetSearch"
clearable
filled
stack-label
option-value=
"SId"
option-label=
"SName"
v-model=
"schoolTemp"
ref=
"School_Id"
:options=
"schoolList"
label=
"所属校区"
:dense=
"false"
/>
v-model=
"schoolTemp"
ref=
"School_Id"
:options=
"schoolList"
label=
"所属校区"
:dense=
"false"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
v-model=
"msg.Status"
:options=
"AuditOpts"
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.MTel"
label=
"电话"
/>
emit-value
map-options
label=
"状态"
/>
</div>
</div>
</div>
</div>
<div
class=
"page-option"
>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"新增管理者"
@
click=
"EditManager(null)"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"新增管理者"
@
click=
"EditManager(null)"
/>
...
@@ -23,18 +23,18 @@
...
@@ -23,18 +23,18 @@
</div>
</div>
<div
class=
"page-content"
>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-right-column-table sticky-tow-column-table"
separator=
"none"
title=
"
后台用户信息
"
:data=
"data"
class=
"sticky-right-column-table sticky-tow-column-table"
separator=
"none"
title=
"
员工管理
"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:body-cell-
MHead
=
"props"
>
<template
v-slot:body-cell-
EmployeeIcon
=
"props"
>
<q-td
auto-width
:props=
"props"
>
<q-td
auto-width
:props=
"props"
>
<q-avatar
size=
"md"
v-if=
"props.value"
>
<q-avatar
size=
"md"
v-if=
"props.value"
>
<img
:src=
"props.value"
/>
<img
:src=
"props.value"
/>
</q-avatar>
</q-avatar>
<q-avatar
size=
"md"
color=
"teal-10"
text-color=
"white"
v-if=
"!props.value"
>
<q-avatar
size=
"md"
color=
"teal-10"
text-color=
"white"
v-if=
"!props.value"
>
{{
props
.
row
.
M
Name
}}
</q-avatar>
{{
props
.
row
.
Employee
Name
}}
</q-avatar>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-
M
Name=
"props"
>
<
template
v-slot:body-cell-
Employee
Name=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"text-blue cursor-pointer"
>
{{
props
.
value
}}
</div>
<div
class=
"text-blue cursor-pointer"
>
{{
props
.
value
}}
</div>
</q-td>
</q-td>
...
@@ -59,12 +59,10 @@
...
@@ -59,12 +59,10 @@
<div
style=
"min-width:190px;width:100%"
>
<div
style=
"min-width:190px;width:100%"
>
<q-btn
v-if=
"props.row.ManagerAccount==''"
flat
size=
"xs"
icon=
"iconfont icon-ziyuan"
color=
"warning"
<q-btn
v-if=
"props.row.ManagerAccount==''"
flat
size=
"xs"
icon=
"iconfont icon-ziyuan"
color=
"warning"
style=
"font-weight:400"
class=
"q-mr-xs"
label=
"创建账号"
@
click=
"createAccount(props.row.MId)"
/>
style=
"font-weight:400"
class=
"q-mr-xs"
label=
"创建账号"
@
click=
"createAccount(props.row.MId)"
/>
<q-btn
flat
size=
"xs"
icon=
"iconfont icon-ziyuan"
color=
"warning"
style=
"font-weight:400"
class=
"q-mr-xs"
label=
"重置密码"
@
click=
"resetPw(props.row.MId)"
/>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"EditManager(props.row)"
/>
@
click=
"EditManager(props.row)"
/>
<q-btn
flat
size=
"xs"
icon=
"iconfont icon-ziyuan"
color=
"warning"
style=
"font-weight:400"
class=
"q-mr-xs"
label=
"更多"
@
click=
"resetPw(props.row.MId)"
/>
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
...
@@ -84,6 +82,7 @@
...
@@ -84,6 +82,7 @@
import
{
import
{
resetPassword
resetPassword
}
from
'../../api/users/user.js'
}
from
'../../api/users/user.js'
import
{
getChildDepartment
}
from
'../../api/system/dept.js'
import
managerForm
from
'../../components/school/manager/manager-form'
import
managerForm
from
'../../components/school/manager/manager-form'
export
default
{
export
default
{
meta
:
{
meta
:
{
...
@@ -96,28 +95,22 @@
...
@@ -96,28 +95,22 @@
return
{
return
{
currentUrl
:
""
,
currentUrl
:
""
,
columns
:
[{
columns
:
[{
name
:
'
MHead
'
,
name
:
'
EmployeeIcon
'
,
label
:
''
,
label
:
''
,
field
:
'
MHead
'
,
field
:
'
EmployeeIcon
'
,
align
:
'left'
,
align
:
'left'
,
},
},
{
{
name
:
'
M
Name'
,
name
:
'
Employee
Name'
,
required
:
true
,
required
:
true
,
label
:
'
管理者
姓名'
,
label
:
'姓名'
,
align
:
'left'
,
align
:
'left'
,
field
:
row
=>
row
.
MName
field
:
row
=>
row
.
EmployeeName
},
{
name
:
'MTel'
,
label
:
'手机号码'
,
field
:
'MTel'
,
align
:
'left'
},
},
{
{
name
:
'SName'
,
name
:
'S
chool
Name'
,
label
:
'
所属校区
'
,
label
:
'
公司
'
,
field
:
'SName'
,
field
:
'S
chool
Name'
,
align
:
'left'
,
align
:
'left'
,
},
},
{
{
...
@@ -128,33 +121,51 @@
...
@@ -128,33 +121,51 @@
},
},
{
{
name
:
'PostName'
,
name
:
'PostName'
,
label
:
'
岗
位'
,
label
:
'
职
位'
,
field
:
'PostName'
,
field
:
'PostName'
,
align
:
'left'
,
align
:
'left'
,
},
},
{
{
name
:
'S
tatus
'
,
name
:
'S
ex
'
,
label
:
'
状态
'
,
label
:
'
性别
'
,
field
:
'S
tatus
'
,
field
:
'S
ex
'
,
align
:
'left'
,
align
:
'left'
},
},
{
{
name
:
'
CreateByName
'
,
name
:
'
Account
'
,
label
:
'
创建人
'
,
label
:
'
账号
'
,
align
:
'left'
,
align
:
'left'
,
field
:
'
CreateByName
'
field
:
'
Account
'
},
},
{
{
name
:
'CreateTimeStr'
,
name
:
'EmployeePhone'
,
label
:
'创建时间'
,
label
:
'联系电话'
,
field
:
'EmployeePhone'
,
align
:
'left'
},
{
name
:
'BirthDate'
,
label
:
'生日'
,
field
:
'BirthDate'
,
align
:
'left'
},
{
name
:
'Education'
,
label
:
'学历'
,
field
:
'Education'
,
align
:
'left'
},
{
name
:
'LeaveStatus'
,
label
:
'状态'
,
field
:
'LeaveStatus'
,
align
:
'left'
,
align
:
'left'
,
field
:
'CreateTimeStr'
},
},
{
{
name
:
'ManagerAccount'
,
name
:
'Remarks'
,
label
:
'账号'
,
label
:
'行政备注'
,
field
:
'Remarks'
,
align
:
'left'
,
align
:
'left'
,
field
:
'ManagerAccount'
},
},
{
{
name
:
'optioned'
,
name
:
'optioned'
,
...
@@ -164,27 +175,22 @@
...
@@ -164,27 +175,22 @@
],
],
data
:
[],
data
:
[],
loading
:
true
,
loading
:
true
,
AuditOpts
:
[{
label
:
'全部'
,
value
:
'-1'
},
{
label
:
'正常'
,
value
:
'0'
},
{
label
:
'禁用'
,
value
:
'1'
},
],
msg
:
{
msg
:
{
pageIndex
:
1
,
pageIndex
:
1
,
pageSize
:
12
,
pageSize
:
12
,
rowsPerPage
:
12
,
rowsPerPage
:
12
,
MName
:
""
,
School_Id
:
0
,
//校区
MTel
:
""
,
Dept_Id
:
0
,
//部门
Status
:
"-1"
,
Post_Id
:
0
,
//岗位编号
School_Id
:
0
,
LeaveStatus
:
-
1
,
//在职状态
StartEntryTime
:
""
,
//入职开始时间
EndEntryTime
:
""
,
//入职结束时间
StartLeaveTime
:
""
,
//开始离职时间
EndLeaveTime
:
""
,
//结束离职时间
StartBirthDate
:
""
,
//开始生日
EndBirthDate
:
""
,
//结束生日
EmployeeName
:
""
,
//员工姓名电话
},
},
schoolTemp
:
""
,
schoolTemp
:
""
,
pageCount
:
0
,
pageCount
:
0
,
...
@@ -325,7 +331,7 @@
...
@@ -325,7 +331,7 @@
refreshPage
()
{
refreshPage
()
{
if
(
!
this
.
managerOption
)
{
if
(
!
this
.
managerOption
)
{
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
M
Name
=
""
;
this
.
msg
.
Employee
Name
=
""
;
this
.
msg
.
MTel
=
""
;
this
.
msg
.
MTel
=
""
;
this
.
msg
.
Status
=
"-1"
;
this
.
msg
.
Status
=
"-1"
;
this
.
msg
.
School_Id
=
0
;
this
.
msg
.
School_Id
=
0
;
...
...
src/pages/system/dept.vue
View file @
f4a28d4c
...
@@ -2,10 +2,27 @@
...
@@ -2,10 +2,27 @@
<div
class=
"page-body"
>
<div
class=
"page-body"
>
<div
class=
"page-search row items-center"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<!--
<div
class=
"col-3"
>
-->
<!--
<q-select
@
input=
"resetSearch"
filled
stack-label
option-value=
"SId"
option-label=
"SName"
--
>
<!-- v-model="msg.School_Id" :options="schoolList" label="校区" :dense="false" class="col-6 q-pr-lg q-pb-lg"-->
<!-- emit-value map-options clearable @clear="resetSearch" />-->
<!--
</div>
-->
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
filled
stack-label
option-value=
"SId"
option-label=
"SName"
<selectSearch
v-model=
"msg.School_Id"
:options=
"schoolList"
label=
"校区"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
classStr=
"col-12 q-pr-lg q-pb-lg"
emit-value
map-options
clearable
@
clear=
"resetSearch"
/>
:Data=
'schoolList'
optionValue=
"SId"
optionLabel=
"SName"
:densetype=
"false"
:vModel=
"msg.School_Id"
label=
"校区"
@
returnData=
"returnData"
:useInput=
"true"
:reactiveRules=
"false"
type=
"1"
>
</selectSearch>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.DeptName"
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.DeptName"
...
@@ -40,6 +57,11 @@
...
@@ -40,6 +57,11 @@
title=
"注意:关闭后,分类将无法正常使用."
@
input=
"SetDeptStatus(props.row)"
/>
title=
"注意:关闭后,分类将无法正常使用."
@
input=
"SetDeptStatus(props.row)"
/>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-School_Id=
"props"
>
<q-td
:props=
"props"
>
{{
props
.
row
.
School_Id
>
0
?
props
.
row
.
SchoolName
:
'总部'
}}
</q-td>
</
template
>
<
template
v-slot:bottom
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
:input=
"true"
@
input=
"changePage"
/>
...
@@ -70,30 +92,31 @@
...
@@ -70,30 +92,31 @@
}
from
'../../api/system/index'
}
from
'../../api/system/index'
import
deptForm
from
'../../components/system/dept-form'
import
deptForm
from
'../../components/system/dept-form'
import
selectTree
from
'../../components/common/select-tree'
import
selectTree
from
'../../components/common/select-tree'
import
selectSearch
from
'../../components/common/select-search'
export
default
{
export
default
{
meta
:
{
meta
:
{
title
:
"部门管理"
title
:
"部门管理"
},
},
components
:
{
components
:
{
deptForm
,
deptForm
,
selectTree
selectTree
,
selectSearch
},
},
data
()
{
data
()
{
return
{
return
{
currentUrl
:
""
,
currentUrl
:
""
,
columns
:
[{
columns
:
[{
name
:
'SchoolName'
,
label
:
'校区'
,
field
:
'SchoolName'
,
align
:
'left'
},
{
name
:
'DeptName'
,
name
:
'DeptName'
,
required
:
true
,
label
:
'部门名称'
,
label
:
'部门名称'
,
align
:
'left'
,
align
:
'left'
,
field
:
row
=>
row
.
DeptName
field
:
row
=>
row
.
DeptName
},
},
{
name
:
'School_Id'
,
label
:
'是否为公司'
,
field
:
'School_Id'
,
align
:
'left'
},
{
{
name
:
'DeptTier'
,
name
:
'DeptTier'
,
label
:
'部门层级'
,
label
:
'部门层级'
,
...
@@ -307,7 +330,15 @@
...
@@ -307,7 +330,15 @@
}).
onCancel
(()
=>
{
}).
onCancel
(()
=>
{
obj
.
Status
=
obj
.
Status
==
1
?
0
:
1
;
obj
.
Status
=
obj
.
Status
==
1
?
0
:
1
;
});
});
},
returnData
(
data
,
type
){
if
(
type
==
1
){
this
.
msg
.
School_Id
=
data
;
}
this
.
resetSearch
()
}
}
}
}
}
}
...
...
src/pages/system/menufunction.vue
View file @
f4a28d4c
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
</q-td>
</q-td>
</
template
>
</
template
>
</q-table>
</q-table>
<menufunction-form
v-if=
"isShowMenuForm"
:save-obj=
"menuObjOption"
@
close=
"closeMenuSaveForm"
@
success=
"refreshPage"
>
<menufunction-form
v-if=
"isShowMenuForm"
:save-obj=
"menuObjOption"
:paramObj=
"MenuId"
@
close=
"closeMenuSaveForm"
@
success=
"refreshPage"
>
</menufunction-form>
</menufunction-form>
</div>
</div>
</div>
</div>
...
...
src/pages/system/msgmanage.vue
0 → 100644
View file @
f4a28d4c
This diff is collapsed.
Click to expand it.
src/pages/system/siteconfig.vue
0 → 100644
View file @
f4a28d4c
<
style
>
.site_ListDiv
{
margin-bottom
:
10px
;
}
</
style
>
<
template
>
<div
class=
"page-body"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
</div>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"新增站点"
@
click=
"addSite(null)"
/>
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table"
separator=
"none"
title=
"文件站点配置"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:body-cell-StoreType=
"props"
>
<q-td
:props=
"props"
style=
"position:relative;"
>
<template
v-if=
"props.row.StoreType==1"
>
<img
src=
"../../assets/images/myimg/tencent.png"
alt=
""
/>
</
template
>
<
template
v-if=
"props.row.StoreType==2"
>
<img
src=
"../../assets/images/myimg/ali.png"
alt=
""
/>
</
template
>
<div
style=
"position:absolute;top:0;left:0;"
>
<img
v-if=
"props.row.IsDefault==1"
style=
"width:50px;"
src=
"../../assets/images/myimg/default.png"
/>
</div>
</q-td>
</template>
<
template
v-slot:body-cell-Using=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"site_ListDiv"
>
空间名称(Bucket):
{{
props
.
row
.
Bucket
}}
</div>
<div
class=
"site_ListDiv"
>
所属地域:
{{
props
.
row
.
Region
}}
</div>
<div
class=
"site_ListDiv"
>
自定义域名:
{{
props
.
row
.
CustomDomain
}}
</div>
<div
class=
"site_ListDiv"
>
SecretId:
{{
props
.
row
.
SecretId
}}
</div>
<div>
SecretKey:
{{
props
.
row
.
SecretKey
}}
</div>
</q-td>
</
template
>
<
template
v-slot:bottom
>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"addSite(props.row)"
/>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"设为默认"
@
click=
"setMoren(props.row)"
/>
</q-td>
</
template
>
</q-table>
<site-form
v-if=
"isShowSiteForm"
:save-obj=
"roleObjOption"
@
close=
"closeSiteSaveForm"
@
success=
"refreshPage"
>
</site-form>
</div>
</div>
</template>
<
script
>
import
{
getSiteConfig
,
setSiteConfig
}
from
'../../api/system/sitecfg'
import
siteForm
from
'../../components/system/site-form'
export
default
{
meta
:
{
title
:
"站点配置"
},
components
:
{
siteForm
,
},
data
()
{
return
{
isShowSiteForm
:
false
,
columns
:
[{
name
:
'StoreType'
,
label
:
'类型'
,
field
:
'StoreType'
,
align
:
'left'
},
{
name
:
'Bucket'
,
label
:
'存储位置'
,
field
:
'Bucket'
,
align
:
'left'
},
{
name
:
'Using'
,
label
:
'使用中'
,
field
:
'Using'
,
align
:
'left'
},
{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'StoreType'
}
],
data
:
[],
// loading: true,
loading
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
20
,
},
roleObjOption
:
null
,
}
},
mounted
()
{
this
.
getList
();
},
methods
:
{
getList
()
{
getSiteConfig
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
data
=
res
.
Data
;
}
}).
catch
(()
=>
{
})
},
//新增站点
addSite
(
obj
)
{
if
(
obj
)
{
this
.
roleObjOption
=
obj
}
else
{
this
.
roleObjOption
=
null
}
this
.
isShowSiteForm
=
true
;
},
//设为默认
setMoren
(
obj
)
{
let
msg
=
obj
;
msg
.
IsDefault
=
1
;
setSiteConfig
(
msg
).
then
(
res
=>
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'设置默认成功!'
,
position
:
'top'
})
this
.
getList
();
}).
catch
(()
=>
{
})
},
//关闭弹窗
closeSiteSaveForm
()
{
this
.
isShowSiteForm
=
false
},
//刷新页面
refreshPage
()
{
this
.
getList
()
},
}
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass');
</
style
>
src/router/routes.js
View file @
f4a28d4c
...
@@ -77,6 +77,16 @@ const routes = [{
...
@@ -77,6 +77,16 @@ const routes = [{
component
:
()
=>
component
:
()
=>
import
(
"pages/system/role.vue"
)
import
(
"pages/system/role.vue"
)
},
},
{
path
:
"/system/siteconfig"
,
//站点配置
component
:
()
=>
import
(
"pages/system/siteconfig.vue"
)
},
{
path
:
"/system/msgmanage"
,
//短信管理
component
:
()
=>
import
(
"pages/system/msgmanage.vue"
)
},
{
{
path
:
"/course/catagory"
,
//课程分类
path
:
"/course/catagory"
,
//课程分类
component
:
()
=>
component
:
()
=>
...
...
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