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
05a1f5c3
Commit
05a1f5c3
authored
Dec 08, 2020
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
f82a3521
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
573 additions
and
456 deletions
+573
-456
quasar.conf.js
quasar.conf.js
+0
-1
App.vue
src/App.vue
+0
-120
class.js
src/api/course/class.js
+12
-0
lesson-form.vue
src/components/course/lesson-form.vue
+144
-19
MainLayout.vue
src/layouts/MainLayout.vue
+352
-253
classManage.vue
src/pages/course/classManage.vue
+1
-1
manager.vue
src/pages/school/manager.vue
+23
-37
dept.vue
src/pages/system/dept.vue
+20
-16
post.vue
src/pages/system/post.vue
+10
-5
role.vue
src/pages/system/role.vue
+9
-3
login.vue
src/pages/user/login.vue
+2
-1
No files found.
quasar.conf.js
View file @
05a1f5c3
...
...
@@ -130,7 +130,6 @@ module.exports = function(ctx) {
'QDate'
,
'QPopupProxy'
,
'QBanner'
,
'QScrollArea'
,
'QSeparator'
,
'QChip'
,
'QTab'
,
...
...
src/App.vue
deleted
100644 → 0
View file @
f82a3521
<
template
>
<div
id=
"q-app"
>
<router-view
/>
</div>
</
template
>
<
script
>
export
default
{
name
:
'App'
}
</
script
>
<
style
>
@import
url('~assets/css/font.css')
;
@import
url('//at.alicdn.com/t/font_2077629_3yray8qk6mp.css')
;
html
,
body
,
#q-app
{
min-height
:
100vh
;
min-width
:
100%
;
font-family
:
'微软雅黑'
,
' Microsoft YaHei'
,
'PingFang'
,
'PingFangR'
;
-webkit-font-smoothing
:
antialiased
;
}
.page-body
{
border-radius
:
8px
;
background
:
#FFF
;
padding
:
30px
;
}
.page-search
{
margin-bottom
:
16px
;
font-family
:
"perfectFont"
;
}
.page-content
.q-table__title
{
font-family
:
"perfectFont"
;
}
.page-content
.q-table__container
.scroll
::-webkit-scrollbar
{
width
:
10px
;
height
:
5px
;
}
.page-content
.q-table__container
.scroll
::-webkit-scrollbar-thumb
{
border-radius
:
10px
;
box-shadow
:
inset
0
0
5px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#535353
;
}
.page-content
.q-table__container
.scroll
::-webkit-scrollbar-track
{
box-shadow
:
inset
0
0
5px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
10px
;
background
:
#EDEDED
;
}
.micfont
{
font-family
:
perfectFont
!important
;
}
.dialog-out-close
{
background
:
var
(
--q-color-primary
);
position
:
absolute
!important
;
top
:
30%
!important
;
left
:
-40px
!important
;
width
:
40px
!important
;
height
:
40px
!important
;
line-height
:
40px
;
text-align
:
center
;
color
:
#FFF
;
border-top-left-radius
:
4px
!important
;
border-bottom-left-radius
:
4px
!important
;
cursor
:
pointer
;
}
/***************************************************** Begin 重写ElementUI 抽屉效果 ***************************************************************/
.el-drawer__wrapper
{
top
:
61px
!important
;
}
.v-modal
{
display
:
none
!important
;
}
.el-drawer__wrapper
.drawerTop
{
background
:
none
!important
;
border-bottom
:
1px
solid
#f5f5f5
;
}
.el-drawer__wrapper
.drawerTop
.drawer_Span
{
font-size
:
18px
!important
;
font-weight
:
500
!important
;
font-family
:
perfectFont
!important
;
}
.el-drawer__wrapper
.drawerTop
.icon-guanbi
{
display
:
none
!important
;
}
.page-body
{
padding
:
15px
!important
;
min-height
:
calc
(
100%
-
30px
);
margin
:
15px
!important
;
}
.q-table__top
{
padding
:
0
0
12px
0px
!important
;
}
.q-btn__wrapper
.row
,
.q-btn__wrapper
.column
,
.q-btn__wrapper
.flex
{
flex-wrap
:
nowrap
!important
;
}
.q-toolbar__title
{
flex
:
unset
!important
;
}
button
.bg-accent
{
background
:
linear-gradient
(
90deg
,
#37ADF7
,
#2961FE
)
!important
;
}
button
.bg-accent
:active
{
background
:
linear-gradient
(
270deg
,
#37ADF7
,
#2961FE
)
!important
;
}
/***************************************************** End 重写ElementUI 抽屉效果 ***************************************************************/
</
style
>
src/api/course/class.js
View file @
05a1f5c3
...
...
@@ -46,3 +46,15 @@ export function quertClassPlan(data) {
data
});
}
/**
* 新增修改课程安排
*/
export
function
setClassPlan
(
data
)
{
return
request
({
url
:
'/Class/SetClassPlan'
,
method
:
'post'
,
data
});
}
src/components/course/lesson-form.vue
View file @
05a1f5c3
...
...
@@ -31,31 +31,43 @@
justify-content
:
space-between
;
padding
:
0
20px
;
}
.calendarTop
{
.calendarTop
{
display
:
flex
;
justify-content
:
space-between
;
font-size
:
12px
;
margin-left
:
-7px
;
font-size
:
12px
;
margin-left
:
-7px
;
align-items
:
center
;
transform
:
scale
(
0.9
);
}
.calendarInner
{
font-size
:
12px
;
margin
:
-4px
0
0
-7px
;
.calendarInner
{
font-size
:
12px
;
margin
:
-4px
0
0
-7px
;
transform
:
scale
(
0.9
);
}
.lesson_Form
.el-calendar-table
.el-calendar-day
{
.lesson_Form
.el-calendar-table
.el-calendar-day
{
padding
:
5px
;
}
.caldendarTeacher
{
.caldendarTeacher
{
display
:
flex
;
font-size
:
12px
;
margin-left
:
40
px
;
font-size
:
12px
;
right
:
3
px
;
justify-content
:
space-between
;
align-items
:
center
;
margin-top
:
-2px
;
margin-top
:
-2px
;
transform
:
scale
(
0.9
);
position
:
absolute
;
bottom
:
2px
;
}
.calenderDialog
{
width
:
300px
;
height
:
auto
;
}
</
style
><
template
>
<div
class=
"lesson_Form"
>
<div
class=
"calenderHeader"
>
...
...
@@ -67,7 +79,50 @@
</el-radio-group>
</div>
<div>
<q-btn
color=
"primary"
class=
"q-mr-md"
icon=
"add"
size=
"12px"
label=
"新增日程"
@
click=
"addTrip()"
/>
<q-btn
color=
"accent q-px-md"
class=
"q-mr-md"
icon=
"add"
size=
"12px"
label=
"新增日程"
@
click=
"isShowMenu=true"
>
<q-popup-proxy>
<q-banner
v-if=
"isShowMenu"
>
<div
class=
"calenderDialog"
>
<div
style=
"margin:10px 0 15px 0;"
>
新增课程安排
</div>
<q-select
filled
stack-label
option-value=
"TId"
option-label=
"TeacherName"
v-model=
"addMsg.TeacherId"
ref=
"Teacher_Id"
:options=
"TeacherList"
label=
"关联教师"
:dense=
"false"
class=
"col-6 q-pb-lg"
emit-value
map-options
/>
<q-input
filled
v-model=
"addMsg.ClassDate"
class=
"col-6 q-pb-lg"
mask=
"date"
label=
"开班时间"
>
<template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"addMsg.ClassDate"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
<q-toggle
size=
"md"
label=
"更多设置"
left-label
color=
"primary"
:false-value=
"0"
:true-value=
"1"
v-model=
"isSetMore"
/>
<
template
v-if=
"isSetMore==1"
>
<q-select
filled
stack-label
option-value=
"RoomId"
option-label=
"RoomName"
v-model=
"addMsg.ClassRoomId"
ref=
"ClassRoomId"
:options=
"ClassRoomList"
label=
"关联教室"
:dense=
"false"
class=
"col-6 q-pb-lg"
emit-value
map-options
/>
<div
class=
"row wrap"
style=
"position:relative;"
v-for=
"(subItem,subIndex) in addMsg.PlanTimeList"
>
<div
class=
"col-6"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"subItem.StartTime"
ref=
"StartTime"
class=
"col-6 q-pr-lg q-pb-lg"
label=
""
:rules=
"[val => !!val || '请填写开始时间']"
/>
</div>
<div
class=
"col-6"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"subItem.EndTime"
ref=
"EndTime"
class=
"col-6 q-pr-lg q-pb-lg"
label=
""
:rules=
"[val => !!val || '请填写开始时间']"
/>
</div>
<q-btn
v-if=
"subIndex==0"
style=
"margin-left:10px;position:absolute;right:-10px;top:15px;"
@
click=
"addStep()"
size=
"10px"
round
color=
"primary"
icon=
"iconfont icon-img_haha"
/>
</div>
</
template
>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
@
click=
"isShowMenu=false"
style=
"font-weight:400 !important"
/>
<q-btn
label=
"确认"
color=
"accent q-px-md"
style=
"font-weight:400 !important"
@
click=
"saveSteps"
/>
</q-card-actions>
</div>
</q-banner>
</q-popup-proxy>
</q-btn>
</div>
</div>
<el-calendar
v-model=
"value"
id=
"calendar"
>
...
...
@@ -88,7 +143,7 @@
<div
v-if=
"item.ClassDateStr==data.day"
>
<div
class=
"calendarTop"
>
<div>
{{
item
.
RoomName
}}
</div>
<div><i
class=
"iconfont icon-edit"
></i></div>
<div><i
class=
"iconfont icon-edit"
@
click
.
stop=
"getInfo(item)"
></i></div>
</div>
<div
class=
"calendarInner"
>
<div
v-for=
"(subItem,subIndex) in item.TimeList"
>
...
...
@@ -96,7 +151,7 @@
</div>
</div>
<div
class=
"caldendarTeacher"
>
<div>
{{
item
.
TeacherName
}}
</div>
<div
style=
"margin-right:5px;"
>
{{
item
.
TeacherName
}}
</div>
<div>
<q-avatar
size=
"sm"
v-if=
"item.UserIcon"
>
<img
:src=
"item.UserIcon"
/>
...
...
@@ -117,7 +172,13 @@
<
script
>
import
{
quertClassPlan
,
setClassPlan
}
from
'../../api/course/class'
;
import
{
getTeacherDropDownList
,
queryClassRoomList
}
from
'../../api/school/index'
export
default
{
props
:
{
setingObj
:
{
...
...
@@ -130,7 +191,27 @@
return
{
calendarData
:
[],
value
:
new
Date
(),
checkedDays
:
'月'
checkedDays
:
'月'
,
TeacherList
:
[],
//老师下拉数据
addMsg
:
{
ClassPlanId
:
0
,
ClassId
:
1
,
ClassDate
:
""
,
ClassDateStr
:
""
,
ClassRoomId
:
1
,
RoomName
:
""
,
TeacherId
:
1
,
TeacherName
:
""
,
UserIcon
:
""
,
PlanTimeList
:
[{
ClassTimeId
:
0
,
StartTime
:
""
,
EndTime
:
""
,
}]
},
isSetMore
:
1
,
//是否显示更多设置
ClassRoomList
:
[],
//教室下拉数据
isShowMenu
:
false
,
//是否显示弹出
}
},
created
()
{
...
...
@@ -139,8 +220,13 @@
mounted
()
{
var
day2
=
new
Date
();
day2
.
setTime
(
day2
.
getTime
());
var
s2
=
day2
.
getFullYear
()
+
"-"
+
(
day2
.
getMonth
()
+
1
);
var
s2
=
day2
.
getFullYear
()
+
"-"
+
(
day2
.
getMonth
()
+
1
);
this
.
getClassPlan
(
s2
);
this
.
GetTeacherList
();
this
.
getClassRoomList
();
this
.
addMsg
.
TeacherId
=
this
.
setingObj
.
Teacher_Id
;
this
.
addMsg
.
ClassDate
=
this
.
setingObj
.
OpenTime
;
console
.
log
(
this
.
setingObj
,
'setingObj'
);
},
methods
:
{
//获取第一个字
...
...
@@ -157,19 +243,58 @@
};
quertClassPlan
(
msg
).
then
(
res
=>
{
console
.
log
(
"res"
,
res
);
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
calendarData
=
res
.
Data
;
}
})
},
//获取教师下拉
GetTeacherList
()
{
getTeacherDropDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
console
.
log
(
this
.
TeacherList
,
'this.TeacherList'
);
}
})
},
//获取教室下拉
getClassRoomList
()
{
queryClassRoomList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
ClassRoomList
=
res
.
Data
;
}
})
},
//点击新增
addStep
()
{
var
obj
=
{
ClassTimeId
:
0
,
StartTime
:
''
,
EndTime
:
''
}
this
.
addMsg
.
PlanTimeList
.
push
(
obj
);
},
//保存新增修改
saveSteps
(){
setClassPlan
(
this
.
addMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
isShowMenu
=
false
;
this
.
getClassPlan
();
}
})
},
//点击修改
getInfo
(
item
){
console
.
log
(
item
,
'数据来了'
);
}
},
watch
:
{
'value'
:
{
handler
(
newValue
)
{
var
d
=
new
Date
(
newValue
);
var
datetime
=
d
.
getFullYear
()
+
'-'
+
(
d
.
getMonth
()
+
1
);
var
datetime
=
d
.
getFullYear
()
+
'-'
+
(
d
.
getMonth
()
+
1
);
this
.
getClassPlan
(
datetime
);
console
.
log
(
datetime
,
'newwww'
);
console
.
log
(
datetime
,
'newwww'
);
},
deep
:
true
},
...
...
src/layouts/MainLayout.vue
View file @
05a1f5c3
<
template
>
<q-layout
view=
"lHh Lpr lFf"
>
<q-header
bordered
reveal
height-hint=
"98"
style=
"background-image: url('~asset/images/page/left.png') right no-repeat;
"
>
<q-layout
view=
"lHh Lpr lFf"
>
<q-header
bordered
reveal
height-hint=
"98"
class=
"head-bg
"
>
<q-toolbar
style=
"height:60px;"
class=
"q-pr-lg q-pl-lg"
>
<q-avatar
style=
"width:38px"
>
<img
:src=
"logo"
>
...
...
@@ -8,10 +8,8 @@
<q-toolbar-title
style=
"font-family:perfectFont;margin-right:50px"
>
{{
name
}}
</q-toolbar-title>
<q-tabs
v-model=
"tab"
@
input=
"changeNavs"
inline-label
style=
"margin:0 auto; font-family:perfectFont;height:60px;flex:1;justify-content: left;"
class=
"text-white"
shrink
stretch
v-if=
"userInfo"
>
<q-tab
v-for=
"(x, i) in userInfo.MenuList"
class=
"q-mr-md"
:key=
"i"
@
click=
"setNavs(i)"
:name=
"`navs_$
{i}`"
:label="x.MenuName" :icon="x.MenuIcon" />
<q-tabs
v-model=
"tab"
@
input=
"changeNavs"
inline-label
style=
"margin:0 auto; font-family:perfectFont;height:60px;flex:1;justify-content: left;"
class=
"text-white"
shrink
stretch
v-if=
"userInfo"
>
<q-tab
v-for=
"(x, i) in userInfo.MenuList"
class=
"q-mr-md"
:key=
"i"
@
click=
"setNavs(i)"
:name=
"`navs_$
{i}`" :label="x.MenuName" :icon="x.MenuIcon" />
</q-tabs>
<div
class=
"q-pl-lg"
>
<q-btn-dropdown
flat
color=
"primary"
size=
"xs"
>
...
...
@@ -148,21 +146,19 @@
</q-header>
<q-page-container
class=
"window-height"
>
<div
class=
"row items-stretch full-height"
>
<div
style=
"width:180px;box-shadow: 2px 0 10px 0 rgba(237,238,240,0.50);font-family:perfectFont"
class=
"text-subtitle2"
v-if=
"secondNavs && secondNavs.length>0
"
>
<q-list
>
<div
style=
"box-shadow: 2px 0 10px 0 rgba(237,238,240,0.50);font-family:perfectFont;"
class=
"text-subtitle2 second-menu-bg"
:style=
"{'width':isExpend?'40px':'180px'}"
v-if=
"secondNavs && secondNavs.length>0"
>
<div
class=
"full-width left-menu-box
"
>
<q-list
style=
"width:180px;overflow:hidden"
>
<
template
v-for=
"(x,i) in secondNavs"
>
<q-item
:to=
"x.MenuUrl"
clickable
v-ripple
:active=
"currentPath==x.MenuUrl"
v-if=
"x.SubList.length==0"
:key=
"i"
>
<q-item
:to=
"x.MenuUrl"
clickable
v-ripple
:active=
"currentPath==x.MenuUrl"
v-if=
"x.SubList.length==0"
:key=
"i"
>
<q-item-section
avatar
>
<q-icon
:name=
"x.MenuIcon"
size=
"20px"
/>
</q-item-section>
<q-item-section>
{{
x
.
MenuName
}}
</q-item-section>
</q-item>
<q-expansion-item
expand-separator
v-else
:label=
"x.MenuName"
>
<q-item
:to=
"y.MenuUrl"
clickable
v-ripple
:active=
"currentPath==y.MenuUrl"
v-for=
"(y, yi) in x.SubList"
:key=
"yi"
>
<q-item-section
avatar
>
<q-item
:to=
"y.MenuUrl"
clickable
v-ripple
:active=
"currentPath==y.MenuUrl"
v-for=
"(y, yi) in x.SubList"
:key=
"yi"
>
<q-item-section
avatar
style=
"padding-right:0;min-width:40px;"
>
<q-icon
:name=
"y.MenuIcon"
size=
"20px"
/>
</q-item-section>
<q-item-section>
{{
y
.
MenuName
}}
</q-item-section>
...
...
@@ -171,6 +167,8 @@
</
template
>
</q-list>
</div>
</div>
<div
class=
"col"
style=
"background: #f2f4f7;"
>
<q-scroll-area
class=
"fit"
:thumb-style=
"thumbStyle"
:bar-style=
"barStyle"
visible
style=
""
>
<router-view
style=
"margin:20px"
/>
...
...
@@ -178,16 +176,16 @@
</div>
</div>
</q-page-container>
</q-layout>
</q-layout>
</template>
<
script
>
import
EssentialLink
from
'components/EssentialLink.vue'
import
{
import
EssentialLink
from
'components/EssentialLink.vue'
import
{
mapGetters
}
from
'vuex'
import
lockr
from
'lockr'
export
default
{
}
from
'vuex'
import
lockr
from
'lockr'
export
default
{
name
:
'MainLayout'
,
components
:
{
EssentialLink
...
...
@@ -212,6 +210,23 @@
backgroundColor
:
'#999'
,
width
:
'6px'
,
opacity
:
0.5
},
contentStyle2
:
{
backgroundColor
:
'rgba(0,0,0,0.02)'
,
color
:
'#555'
},
isExpend
:
false
,
contentActiveStyle2
:
{
backgroundColor
:
'#eee'
,
color
:
'black'
},
thumbStyle2
:
{
right
:
'0px'
,
borderRadius
:
'5px'
,
backgroundColor
:
'#027be3'
,
width
:
'5px'
,
opacity
:
0.75
}
}
},
...
...
@@ -272,12 +287,96 @@
})
}
},
}
}
</
script
>
<
style
>
.full-width
{
.full-width
{
height
:
100%
;
}
}
.head-bg
{
background-image
:
url('~assets/images/page/top.png')
;
background-position
:
right
;
background-repeat
:
no-repeat
;
background-size
:
auto
100%
;
}
.second-menu-bg
{
background-image
:
url('~assets/images/page/left.png')
;
background-position
:
bottom
;
background-repeat
:
no-repeat
;
background-size
:
100%
auto
;
height
:
100%
;
}
.hide-scrollbar
{
scrollbar-width
:
5px
!important
;
-ms-overflow-style
:
marquee
,
panner
!important
;
}
.suojin
{
height
:
40px
;
width
:
100%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
background
:
rgba
(
255
,
255
,
255
,
.5
);
}
.suojin
i
{
font-size
:
24px
;
color
:
#636363
;
}
.left-menu-box
{
overflow-x
:
hidden
;
overflow-y
:
auto
;
max-height
:
100%
;
height
:
100%
;
background-color
:
rgba
(
255
,
255
,
255
,
0.3
);
}
.left-menu-box
::-webkit-scrollbar
{
width
:
4px
;
height
:
4px
;
}
.left-menu-box
::-webkit-scrollbar-thumb
{
border-radius
:
4px
;
box-shadow
:
inset
0
0
5px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#bbb
;
}
/* .left-menu-box::-webkit-scrollbar-track {
box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 10px;
background: #EDEDED;
} */
@keyframes
shouqidonghua
{
from
{
width
:
180px
;
}
to
{
width
:
60px
;
}
}
.changeShowqidonghua
{
animation
:
shouqidonghua
0.5s
linear
;
width
:
60px
!important
;
overflow-x
:
hidden
;
}
@keyframes
shouqidonghua
{
from
{
width
:
180px
;
}
to
{
width
:
60px
;
}
}
.changeShowqidonghua
{
animation
:
shouqidonghua
0.5s
linear
;
width
:
60px
!important
;
overflow-x
:
hidden
;
}
</
style
>
src/pages/course/classManage.vue
View file @
05a1f5c3
...
...
@@ -28,7 +28,7 @@
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-
tow-
column-table"
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
title=
"班级信息"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:body-cell-ClassName=
"props"
>
<q-td
auto-width
:props=
"props"
>
...
...
src/pages/school/manager.vue
View file @
05a1f5c3
...
...
@@ -11,32 +11,18 @@
option-value=
"value"
option-label=
"label"
label=
"校区状态"
/>
</div>
</div>
<div
class=
"page-option"
>
<!-- 原则上不能操作过三个按钮,建议不要使用查询按钮,增加用户操作次数 -->
<!--
<q-btn
color=
"primary"
outline
label=
"立即查询"
/>
-->
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"新增校区"
@
click=
"EditSchool(null)"
/>
<q-btn-dropdown
outline
color=
"dark"
label=
"更多"
>
<q-list>
<q-item
clickable
v-close-popup
@
click=
"onItemClick"
>
<!--
<q-item-section
side
>
<q-icon
name=
"style"
/>
</q-item-section>
-->
<q-item-section>
<q-item-label>
导出
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
@
click=
"onItemClick"
>
<q-item-section>
<q-item-label>
导入
</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
title=
"校区信息"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
校区信息
</div>
<q-space
/>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
size=
"sm"
icon=
"add"
label=
"新增校区"
@
click=
"EditSchool(null)"
/>
</div>
</
template
>
<
template
v-slot:body-cell-Status=
"props"
>
<q-td
:props=
"props"
>
<q-badge
:color=
"props.value==1?'negative':'primary'"
:label=
"props.value==1?'关闭':'正常'"
/>
...
...
@@ -89,20 +75,20 @@
format
:
val
=>
`
${
val
}
`
,
sortable
:
true
},
{
name
:
'GroupName'
,
label
:
'所属机构'
,
field
:
'GroupName'
,
align
:
'left'
,
sortable
:
true
},
{
name
:
'DeptName'
,
label
:
'所属部门'
,
field
:
'DeptName'
,
align
:
'left'
,
sortable
:
true
},
//
{
//
name: 'GroupName',
//
label: '所属机构',
//
field: 'GroupName',
//
align: 'left',
//
sortable: true
//
},
//
{
//
name: 'DeptName',
//
label: '所属部门',
//
field: 'DeptName',
//
align: 'left',
//
sortable: true
//
},
{
name
:
'ManagerName'
,
label
:
'负责人'
,
...
...
src/pages/system/dept.vue
View file @
05a1f5c3
<
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
class=
"col
-3
"
>
<selectSearch
classStr=
"col-12 q-pr-lg q-pb-lg"
:Data=
'schoolList'
optionValue=
"SId"
optionLabel=
"SName"
<div
class=
"col row wrap q-col-gutter-md"
>
<div
class=
"col"
>
<selectSearch
:Data=
'schoolList'
optionValue=
"SId"
optionLabel=
"SName"
:densetype=
"false"
:vModel=
"msg.School_Id"
label=
"校区"
@
returnData=
"returnData"
:useInput=
"true"
:reactiveRules=
"false"
>
</selectSearch>
</div>
<div
class=
"col
-3
"
>
<div
class=
"col"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.DeptName"
label=
"部门名称"
/>
</div>
<div
class=
"col
-3
"
>
<div
class=
"col"
>
<q-select
@
input=
"resetSearch"
filled
stack-label
option-value=
"value"
option-label=
"label"
v-model=
"msg.DeptTier"
ref=
"DeptTier"
:options=
"DeptTierList"
label=
"部门层级"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
clearable
@
clear=
"resetSearch"
/>
emit-value
map-options
clearable
@
clear=
"resetSearch"
/>
</div>
<div
class=
"col
-3
"
>
<div
class=
"col"
>
<selectTree
v-if=
"DeptTreeList&&DeptTreeList.length>0"
:treeData=
'DeptTreeList'
:defaultArray=
"returnString"
nodeKey=
"DeptId"
:multiple=
"false"
labelKey=
"DeptName"
childrenKey=
"ChildList"
tipText=
"选择上级部门"
@
getChild=
"getChild"
classStr=
"col-6 q-pr-lg q-pb-lg"
></selectTree>
@
getChild=
"getChild"
></selectTree>
</div>
<div
class=
"col
-3
"
>
<div
class=
"col"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
v-model=
"msg.Status"
:options=
"ShowOpts"
emit-value
map-options
label=
"状态"
/>
</div>
</div>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"新增部门"
@
click=
"EditDept(null)"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"组织机构图"
@
click=
"gotoRelation()"
/>
</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"
>
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
部门信息
</div>
<q-space
/>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"新增部门"
@
click=
"EditDept(null)"
/>
<q-btn
color=
"secondary"
flat
size=
"sm"
icon=
"iconfont icon-zuzhijiagou"
label=
"组织机构图"
@
click=
"gotoRelation()"
/>
</div>
</
template
>
<
template
v-slot:body-cell-Status=
"props"
>
<q-td
:props=
"props"
>
<q-toggle
size=
"
md"
color=
"prim
ary"
:false-value=
"1"
:true-value=
"0"
v-model=
"props.row.Status"
<q-toggle
size=
"
sm"
color=
"second
ary"
:false-value=
"1"
:true-value=
"0"
v-model=
"props.row.Status"
title=
"注意:关闭后,分类将无法正常使用."
@
input=
"SetDeptStatus(props.row)"
/>
</q-td>
</
template
>
...
...
@@ -97,7 +101,7 @@
},
{
name
:
'School_Id'
,
label
:
'
是否为公司
'
,
label
:
'
所属校区
'
,
field
:
'School_Id'
,
align
:
'left'
},
...
...
src/pages/system/post.vue
View file @
05a1f5c3
...
...
@@ -11,16 +11,21 @@
emit-value
map-options
label=
"状态"
/>
</div>
</div>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"新增岗位"
@
click=
"EditPost(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"
>
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
岗位信息
</div>
<q-space
/>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
size=
"sm"
icon=
"add"
label=
"新增岗位"
@
click=
"EditPost(null)"
/>
</div>
</
template
>
<
template
v-slot:body-cell-Status=
"props"
>
<q-td
:props=
"props"
>
<q-toggle
size=
"
md"
color=
"prim
ary"
:false-value=
"1"
:true-value=
"0"
v-model=
"props.row.Status"
<q-toggle
size=
"
sm"
color=
"second
ary"
:false-value=
"1"
:true-value=
"0"
v-model=
"props.row.Status"
title=
"注意:关闭后,分类将无法正常使用."
@
input=
"SetPostStatus(props.row)"
/>
</q-td>
</
template
>
...
...
src/pages/system/role.vue
View file @
05a1f5c3
...
...
@@ -11,18 +11,24 @@
emit-value
map-options
label=
"状态"
/>
</div>
</div>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"新增角色"
@
click=
"EditRole(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:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
角色信息
</div>
<q-space
/>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
size=
"sm"
icon=
"add"
label=
"新增角色"
@
click=
"EditRole(null)"
/>
</div>
</
template
>
<
template
v-slot:body-cell-Status=
"props"
>
<q-td
:props=
"props"
>
<q-toggle
size=
"md"
color=
"primary"
:false-value=
"1"
:true-value=
"0"
v-model=
"props.row.Status"
title=
"注意:关闭后,分类将无法正常使用."
@
input=
"DeleteRole(props.row)"
/>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
...
...
src/pages/user/login.vue
View file @
05a1f5c3
...
...
@@ -115,6 +115,7 @@ export default {
},
methods
:
{
gologin
()
{
console
.
log
(
'aaaaa'
)
this
.
isLogining
=
true
this
.
$refs
.
account
.
validate
()
this
.
$refs
.
pwd
.
validate
()
...
...
@@ -139,7 +140,7 @@ export default {
this
.
isLogining
=
false
})
}
else
{
console
.
log
(
'dosomething'
)
}
setTimeout
(()
=>
{
this
.
isLogining
=
false
...
...
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