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
8b619127
Commit
8b619127
authored
Dec 08, 2020
by
罗超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
# Conflicts: # src/App.vue # src/pages/school/sysuser.vue
parents
c7481cb2
bbdefc4d
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
680 additions
and
100 deletions
+680
-100
class.js
src/api/course/class.js
+28
-7
index.js
src/api/school/index.js
+11
-0
classinfo-form.vue
src/components/course/classinfo-form.vue
+58
-26
lesson-form.vue
src/components/course/lesson-form.vue
+179
-0
employee-info.vue
src/components/school/manager/employee-info.vue
+140
-0
employee-remark.vue
src/components/school/manager/employee-remark.vue
+53
-0
employee_details.vue
src/components/school/manager/employee_details.vue
+32
-0
employee_file.vue
src/components/school/manager/employee_file.vue
+32
-0
employee_finace.vue
src/components/school/manager/employee_finace.vue
+32
-0
employee_log.vue
src/components/school/manager/employee_log.vue
+32
-0
classManage.vue
src/pages/course/classManage.vue
+15
-23
sysuser.vue
src/pages/school/sysuser.vue
+66
-42
post.vue
src/pages/system/post.vue
+2
-2
No files found.
src/api/course/class.js
View file @
8b619127
...
...
@@ -18,10 +18,31 @@ export function queryClassPage(data) {
* @param {JSON参数} data
*/
export
function
queryClassStatusList
()
{
return
request
({
url
:
'/Class/GetClassStatusList'
,
method
:
'post'
,
data
:
""
})
}
\ No newline at end of file
return
request
({
url
:
'/Class/GetClassStatusList'
,
method
:
'post'
,
data
:
""
})
}
/**
* 获取班级学员列表
*/
export
function
queryClassStudent
(
data
)
{
return
request
({
url
:
'/Class/GetClassStudent'
,
method
:
'post'
,
data
});
}
/**
* 获取上课计划列表
*/
export
function
quertClassPlan
(
data
)
{
return
request
({
url
:
'/Class/GetClassPlan'
,
method
:
'post'
,
data
});
}
src/api/school/index.js
View file @
8b619127
...
...
@@ -457,3 +457,14 @@ export function deleteClassRoomInfo(data) {
data
});
}
/***
* 获取行政备注类型下拉列表
*/
export
function
queryRemarkTypeList
()
{
return
request
({
url
:
'/User/GetAccountRemarkTypeEnumList'
,
method
:
'post'
,
data
:
""
});
}
src/components/course/classinfo-form.vue
View file @
8b619127
...
...
@@ -34,11 +34,10 @@
.classinfo_Dialog
.normalInner
{
color
:
#111111
;
}
</
style
>
<
template
>
<q-dialog
v-model=
"persistent"
maximized
full-height
seamless
position=
"right"
@
hide=
"closeShenheForm"
>
<q-card
style=
"margin-top:61px;width:8
0
0px"
class=
"no-border-radius classinfo_Dialog"
>
<q-card
style=
"margin-top:61px;width:8
5
0px"
class=
"no-border-radius classinfo_Dialog"
>
<div
class=
"drawerTop"
>
<div
style=
"display:flex;align-items:center;"
>
<q-avatar
size=
"md"
style=
"background:#d4dfff;color:#2961FE;font-weight:bold;"
>
...
...
@@ -72,8 +71,9 @@
<div
class=
"row wrap"
style=
"margin-top:20px;"
>
<div
class=
"col-6"
style=
"display:flex;align-items:center;"
>
<span
class=
"normalName"
>
课程进度:
</span>
<q-linear-progress
rounded
size=
"20px"
:value=
"setingObj.CompleteProgress/100"
style=
"background-color:#EEEEEF;color:#3FC4FF;display:inline-block;width:44%"
/>
<q-linear-progress
rounded
size=
"20px"
:value=
"getProgress(setingObj.CompleteProgress,100)"
style=
"background-color:#EEEEEF;color:#3FC4FF;display:inline-block;width:30%;margin-right:10px;"
/>
{{setingObj.CompleteProgress}}%
</div>
</div>
</div>
...
...
@@ -82,18 +82,26 @@
<q-tab
:ripple=
"false"
name=
"second"
label=
"上课计划"
/>
<q-tab
:ripple=
"false"
name=
"third"
label=
"上课记录"
/>
<q-tab
:ripple=
"false"
name=
"fourth"
label=
"班级日志"
/>
<q-tab
:ripple=
"false"
name=
"fifth"
label=
"待定"
/>
</q-tabs>
<div
v-if=
"tabCheck=='first'"
>
<div
v-if=
"tabCheck=='first'"
style=
"margin:0 15px;"
>
<div
style=
"text-align:right;"
>
<q-btn
outline
color=
"black"
label=
"退课"
size=
"12px"
style=
"margin-right:20px;"
/>
<q-btn
color=
"primary"
class=
"q-mr-md"
size=
"12px"
icon=
"add"
label=
"邀请新学员"
/>
</div>
<q-table
:
pagination=
"stuMsg"
:
loading=
"loading"
no-data-label=
"暂无相关数据"
flat
selection=
"multiple"
<q-table
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
selection=
"multiple"
:selected
.
sync=
"selected"
class=
"sticky-right-column-table sticky-tow-column-table"
separator=
"none"
title=
"员工管理"
:data=
"studentList"
:columns=
"columns"
row-key=
"Id"
>
title=
"学员信息"
:data=
"studentList"
:columns=
"columns"
hide-bottom
row-key=
"Id"
>
<
template
v-slot:body-cell-IsRenew=
"props"
>
<q-td
auto-width
:props=
"props"
>
<span
style=
"color:red;"
v-if=
"props.row.IsRenew==0"
>
否
</span>
<span
style=
"color:green;"
v-if=
"props.row.IsRenew==1"
>
是
</span>
</q-td>
</
template
>
</q-table>
</div>
<div
v-if=
"tabCheck=='second'"
>
<lessForm
:seting-obj=
"setingObj"
></lessForm>
</div>
</q-card>
<div
class=
"dialog-out-close"
@
click=
"closeShenheForm"
style=
"height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;"
>
...
...
@@ -103,6 +111,10 @@
</template>
<
script
>
import
{
queryClassStudent
,
}
from
'../../api/course/class'
;
import
lessForm
from
'../course/lesson-form'
;
export
default
{
props
:
{
setingObj
:
{
...
...
@@ -111,58 +123,58 @@
}
},
components
:
{
lessForm
},
data
()
{
return
{
persistent
:
true
,
tabCheck
:
'first'
,
//默认选第一个
columns
:
[{
name
:
'EmployeeName'
,
required
:
true
,
name
:
'GuestName'
,
label
:
'姓名'
,
field
:
'GuestName'
,
align
:
'left'
,
},
{
name
:
'Sex'
,
name
:
'Sex
Str
'
,
label
:
'性别'
,
field
:
'Sex'
,
field
:
'Sex
Str
'
,
align
:
'left'
,
},
{
name
:
'
a
ge'
,
name
:
'
A
ge'
,
label
:
'年龄'
,
field
:
'
a
ge'
,
field
:
'
A
ge'
,
align
:
'left'
,
},
{
name
:
'
classHour
'
,
name
:
'
ClassHours
'
,
label
:
'上课课时'
,
field
:
'
classHour
'
,
field
:
'
ClassHours
'
,
align
:
'left'
,
},
{
name
:
'
joinTime
'
,
name
:
'
CreateTimeStr
'
,
label
:
'加入时间'
,
field
:
'
joinTime
'
,
field
:
'
CreateTimeStr
'
,
align
:
'left'
},
{
name
:
'
Tel
'
,
name
:
'
Mobile
'
,
label
:
'联系电话'
,
align
:
'left'
,
field
:
'
Tel
'
field
:
'
Mobile
'
},
{
name
:
'Order
Num
'
,
name
:
'Order
Id
'
,
label
:
'关联订单'
,
field
:
'Order
Num
'
,
field
:
'Order
Id
'
,
align
:
'left'
},
{
name
:
'
courses
'
,
name
:
'
IsRenew
'
,
label
:
'续费课程'
,
field
:
'
courses
'
,
field
:
'
IsRenew
'
,
align
:
'left'
}
],
...
...
@@ -174,6 +186,9 @@
selected
:
[],
//选中
}
},
created
()
{
this
.
getStudentData
();
},
mounted
()
{
console
.
log
(
"aaa"
,
this
.
setingObj
);
},
...
...
@@ -181,7 +196,24 @@
closeShenheForm
()
{
this
.
persistent
=
false
;
this
.
$emit
(
'close'
);
}
},
//获取学员信息
getStudentData
()
{
queryClassStudent
({
ClassId
:
this
.
setingObj
.
ClassId
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
studentList
=
res
.
Data
;
}
})
},
//获取进度条
getProgress
(
num
,
total
)
{
if
(
num
==
0
||
total
==
0
){
return
0
;
}
return
(
Math
.
round
(
num
/
total
*
100
)
/
100.00
);
},
},
}
...
...
src/components/course/lesson-form.vue
0 → 100644
View file @
8b619127
<
style
>
.calendar-day
{
text-align
:
center
;
color
:
#202535
;
line-height
:
30px
;
font-size
:
12px
;
}
.is-selected
{
color
:
#F8A535
;
font-size
:
10px
;
margin-top
:
5px
;
}
#calendar
.el-button-group
>
.el-button
:not
(
:first-child
)
:not
(
:last-child
)
:after
{
content
:
'当月'
;
}
.el-calendar-day
{
position
:
relative
;
}
.calendar-day
{
position
:
absolute
;
bottom
:
-5px
;
left
:
5px
;
}
.calenderHeader
{
display
:
flex
;
justify-content
:
space-between
;
padding
:
0
20px
;
}
.calendarTop
{
display
:
flex
;
justify-content
:
space-between
;
font-size
:
12px
;
margin-left
:
-7px
;
align-items
:
center
;
transform
:
scale
(
0.9
);
}
.calendarInner
{
font-size
:
12px
;
margin
:
-4px
0
0
-7px
;
transform
:
scale
(
0.9
);
}
.lesson_Form
.el-calendar-table
.el-calendar-day
{
padding
:
5px
;
}
.caldendarTeacher
{
display
:
flex
;
font-size
:
12px
;
margin-left
:
40px
;
justify-content
:
space-between
;
align-items
:
center
;
margin-top
:
-2px
;
transform
:
scale
(
0.9
);
}
</
style
><
template
>
<div
class=
"lesson_Form"
>
<div
class=
"calenderHeader"
>
<div>
<el-radio-group
v-model=
"checkedDays"
size=
"mini"
>
<el-radio-button
label=
"日"
></el-radio-button>
<el-radio-button
label=
"月"
></el-radio-button>
<el-radio-button
style=
"margin-left:20px;border-left:1px solid #DCDFE6;"
label=
"今天"
></el-radio-button>
</el-radio-group>
</div>
<div>
<q-btn
color=
"primary"
class=
"q-mr-md"
icon=
"add"
size=
"12px"
label=
"新增日程"
@
click=
"addTrip()"
/>
</div>
</div>
<el-calendar
v-model=
"value"
id=
"calendar"
>
<!-- 这里使用的是 2.5 slot 语法,对于新项目请使用 2.6 slot 语法-->
<template
slot=
"dateCell"
slot-scope=
"
{date, data}">
<!--自定义内容-->
<div
class=
"calendar-day"
>
{{
data
.
day
.
split
(
'-'
).
slice
(
2
).
join
(
'-'
)
}}
</div>
<div
v-for=
"item in calendarData"
>
<!--
<div
v-if=
"(item.months).indexOf(data.day.split('-').slice(1)[0])!=-1"
>
<div
v-if=
"(item.days).indexOf(data.day.split('-').slice(2).join('-'))!=-1"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"item.things"
placement=
"right"
>
<div
class=
"is-selected"
>
{{
item
.
things
}}
</div>
</el-tooltip>
</div>
<div
v-else
></div>
</div>
<div
v-else
></div>
-->
<div
v-if=
"item.ClassDateStr==data.day"
>
<div
class=
"calendarTop"
>
<div>
{{
item
.
RoomName
}}
</div>
<div><i
class=
"iconfont icon-edit"
></i></div>
</div>
<div
class=
"calendarInner"
>
<div
v-for=
"(subItem,subIndex) in item.TimeList"
>
{{
subIndex
+
1
}}
节课
{{
subItem
.
StartTime
}}
-
{{
subItem
.
EndTime
}}
</div>
</div>
<div
class=
"caldendarTeacher"
>
<div>
{{
item
.
TeacherName
}}
</div>
<div>
<q-avatar
size=
"sm"
v-if=
"item.UserIcon"
>
<img
:src=
"item.UserIcon"
/>
</q-avatar>
<q-avatar
size=
"md"
color=
"teal-10"
text-color=
"white"
v-if=
"!item.UserIcon"
>
{{
GetFirst
(
item
.
TeacherName
)
}}
</q-avatar>
</div>
</div>
</div>
<div
v-else
></div>
</div>
</
template
>
</el-calendar>
</div>
</template>
<
script
>
import
{
quertClassPlan
,
}
from
'../../api/course/class'
;
export
default
{
props
:
{
setingObj
:
{
type
:
Object
,
default
:
null
}
},
name
:
"calendar"
,
data
()
{
return
{
calendarData
:
[],
value
:
new
Date
(),
checkedDays
:
'月'
}
},
created
()
{
},
mounted
()
{
var
day2
=
new
Date
();
day2
.
setTime
(
day2
.
getTime
());
var
s2
=
day2
.
getFullYear
()
+
"-"
+
(
day2
.
getMonth
()
+
1
);
this
.
getClassPlan
(
s2
);
},
methods
:
{
//获取第一个字
GetFirst
(
val
)
{
if
(
val
)
{
return
val
.
substr
(
0
,
1
);
}
},
//获取班级上课计划列表
getClassPlan
(
datetime
)
{
var
msg
=
{
ClassId
:
this
.
setingObj
.
ClassId
,
QMonth
:
datetime
};
quertClassPlan
(
msg
).
then
(
res
=>
{
console
.
log
(
"res"
,
res
);
if
(
res
.
Code
==
1
){
this
.
calendarData
=
res
.
Data
;
}
})
}
},
watch
:
{
'value'
:
{
handler
(
newValue
)
{
var
d
=
new
Date
(
newValue
);
var
datetime
=
d
.
getFullYear
()
+
'-'
+
(
d
.
getMonth
()
+
1
);
this
.
getClassPlan
(
datetime
);
console
.
log
(
datetime
,
'newwww'
);
},
deep
:
true
},
},
}
</
script
>
src/components/school/manager/employee-info.vue
0 → 100644
View file @
8b619127
<
style
>
.empInfo_Dialog
.drawerTop
{
width
:
100%
;
height
:
50px
;
display
:
flex
;
justify-content
:
space-between
;
background-color
:
#F0F5FB
;
padding
:
5px
10px
;
align-items
:
center
;
}
.empInfo_Dialog
.classFirst
{
color
:
#000000
;
font-weight
:
bold
;
}
.empInfo_Dialog
.className
{
margin-left
:
10px
;
}
.empInfo_Dialog
.classStatus
{
padding
:
3px
8px
;
background-color
:
#c8d7fc
;
color
:
#2961FE
;
font-size
:
12px
;
border-radius
:
2px
;
margin-left
:
20px
;
}
.empInfo_Dialog
.normalName
{
color
:
#999999
;
}
.empInfo_Dialog
.normalInner
{
color
:
#111111
;
}
</
style
>
<
template
>
<q-dialog
v-model=
"persistent"
maximized
full-height
seamless
position=
"right"
@
hide=
"closeShenheForm"
>
<q-card
style=
"margin-top:61px;width:800px"
class=
"no-border-radius empInfo_Dialog"
>
<div
class=
"drawerTop"
>
<div
style=
"display:flex;align-items:center;"
>
<q-avatar
size=
"md"
v-if=
"saveObj.UserIcon"
>
<img
:src=
"saveObj.UserIcon"
/>
</q-avatar>
<q-avatar
size=
"md"
color=
"teal-10"
text-color=
"white"
style=
"background:#d4dfff;color:#2961FE;font-weight:bold;"
v-if=
"!saveObj.UserIcon"
>
{{
saveObj
.
EmployeeName
.
substring
(
0
,
1
)
}}
</q-avatar>
<div
class=
"className"
>
<div
class=
"classFirst"
>
{{
saveObj
.
EmployeeName
}}
</div>
</div>
</div>
</div>
<div
style=
"margin:20px;font-size:12px;"
>
<div
class=
"row wrap "
>
<div
class=
"col-6"
>
<span
class=
"normalName"
>
公司
</span>
<span
class=
"normalInner"
>
{{
saveObj
.
SchoolName
}}
</span>
</div>
<div
class=
"col-6"
>
<span
class=
"normalName"
>
部门
</span>
<span
class=
"normalInner"
>
{{
saveObj
.
DeptName
}}
</span>
</div>
<div
class=
"col-6"
>
<span
class=
"normalName"
>
岗位
</span>
<span
class=
"normalInner"
>
{{
saveObj
.
PostName
}}
</span>
</div>
<div
class=
"col-6"
>
<span
class=
"normalName"
>
电话
</span>
<span
class=
"normalInner"
>
{{
saveObj
.
EmployeeTel
}}
</span>
</div>
</div>
</div>
<q-tabs
style=
"margin-bottom:20px;"
v-model=
"tabCheck"
narrow-indicator
dense
align=
"left"
class=
"text-primary"
>
<q-tab
:ripple=
"false"
name=
"first"
label=
"行政备注"
/>
<q-tab
:ripple=
"false"
name=
"second"
label=
"详细资料"
/>
<q-tab
:ripple=
"false"
name=
"third"
label=
"日志记录"
/>
<q-tab
:ripple=
"false"
name=
"fourth"
label=
"附件"
/>
<q-tab
:ripple=
"false"
name=
"fifth"
label=
"财务单据"
/>
</q-tabs>
<div
v-if=
"tabCheck=='first'"
style=
"margin:0 15px;"
>
<employeeRemark
:saveObj=
"saveObj"
></employeeRemark>
</div>
<div
v-if=
"tabCheck=='second'"
>
<employeeDetails
:saveObj=
"saveObj"
></employeeDetails>
</div>
<div
v-if=
"tabCheck=='third'"
>
<employeeLog
:saveObj=
"saveObj"
></employeeLog>
</div>
<div
v-if=
"tabCheck=='fourth'"
>
<employeeFile
:saveObj=
"saveObj"
></employeeFile>
</div>
<div
v-if=
"tabCheck=='fifth'"
>
<employeeFinace
:saveObj=
"saveObj"
></employeeFinace>
</div>
</q-card>
</q-dialog>
</
template
>
<
script
>
import
employeeDetails
from
'../manager/employee_details'
;
import
employeeRemark
from
'../manager/employee-remark'
;
import
employeeLog
from
'../manager/employee_log'
;
import
employeeFile
from
'../manager/employee_file'
;
import
employeeFinace
from
'../manager/employee_finace'
;
export
default
{
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
components
:
{
employeeDetails
,
employeeRemark
,
employeeLog
,
employeeFile
,
employeeFinace
},
data
()
{
return
{
persistent
:
true
,
tabCheck
:
'first'
,
//默认选第一个
loading
:
false
,
}
},
created
()
{},
mounted
()
{
console
.
log
(
"aaa"
,
this
.
saveObj
);
},
methods
:
{
closeShenheForm
()
{
this
.
persistent
=
false
;
this
.
$emit
(
'close'
);
}
},
}
</
script
>
src/components/school/manager/employee-remark.vue
0 → 100644
View file @
8b619127
<
template
>
<div
class=
"EmployeeRemark"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"saveMsg.EmployeeName"
ref=
"EmployeeName"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"备注信息"
:rules=
"[val => !!val || '请填写备注信息']"
/>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"Name"
v-model=
"objOption.Education"
ref=
"Education"
:options=
"RemarkTypeList"
label=
"学历"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
/>
</div>
</
template
>
<
script
>
import
{
queryRemarkTypeList
}
from
'../../../api/school/index'
export
default
{
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
name
:
"EmployeeRemark"
,
data
()
{
return
{
saveMsg
:
{
EmployeeName
:
""
,
},
RemarkTypeList
:
[],
//行政备注类型列表
}
},
created
()
{
this
.
getRemarkType
();
console
.
log
(
"aaa"
,
this
.
saveObj
);
},
mounted
()
{
},
methods
:
{
//获取行政备注类型列表
getRemarkType
()
{
queryRemarkTypeList
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
RemarkTypeList
=
res
.
Data
;
console
.
log
(
"this.RemarkTypeList"
,
this
.
RemarkTypeList
);
}
});
}
},
}
</
script
>
src/components/school/manager/employee_details.vue
0 → 100644
View file @
8b619127
<
template
>
<div
class=
"EmployeeDetails"
>
详情
</div>
</
template
>
<
script
>
export
default
{
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
name
:
"EmployeeDetails"
,
data
()
{
return
{
}
},
created
()
{
},
mounted
()
{
},
methods
:
{
},
}
</
script
>
src/components/school/manager/employee_file.vue
0 → 100644
View file @
8b619127
<
template
>
<div
class=
"EmployeeFile"
>
附件
</div>
</
template
>
<
script
>
export
default
{
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
name
:
"EmployeeFile"
,
data
()
{
return
{
}
},
created
()
{
},
mounted
()
{
},
methods
:
{
},
}
</
script
>
src/components/school/manager/employee_finace.vue
0 → 100644
View file @
8b619127
<
template
>
<div
class=
"EmployeeFinace"
>
财务单据
</div>
</
template
>
<
script
>
export
default
{
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
name
:
"EmployeeFinace"
,
data
()
{
return
{
}
},
created
()
{
},
mounted
()
{
},
methods
:
{
},
}
</
script
>
src/components/school/manager/employee_log.vue
0 → 100644
View file @
8b619127
<
template
>
<div
class=
"EmployeeLog"
>
日志
</div>
</
template
>
<
script
>
export
default
{
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
name
:
"EmployeeLog"
,
data
()
{
return
{
}
},
created
()
{
},
mounted
()
{
},
methods
:
{
},
}
</
script
>
src/pages/course/classManage.vue
View file @
8b619127
...
...
@@ -3,23 +3,23 @@
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
change=
"getList"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassName"
label=
"班级名称"
@
clear=
"getList"
/>
<q-input
@
change=
"get
Class
List"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassName"
label=
"班级名称"
@
clear=
"get
Class
List"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"getList"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
<q-select
@
input=
"get
Class
List"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.ClassStatus"
:options=
"classStatusList"
emit-value
map-options
label=
"课程状态"
/>
</div>
<div
class=
"col-3"
>
<q-input
@
change=
"getList"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.TeacherName"
label=
"带班老师"
@
clear=
"getList"
/>
<q-input
@
change=
"get
Class
List"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.TeacherName"
label=
"带班老师"
@
clear=
"get
Class
List"
/>
</div>
<div
class=
"col-3"
>
<q-input
@
change=
"getList"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.CourseName"
label=
"学习课程"
@
clear=
"getList"
/>
<q-input
@
change=
"get
Class
List"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.CourseName"
label=
"学习课程"
@
clear=
"get
Class
List"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"getList"
standout=
"bg-primary text-white"
option-value=
"SId"
option-label=
"SName"
<q-select
@
input=
"get
Class
List"
standout=
"bg-primary text-white"
option-value=
"SId"
option-label=
"SName"
v-model=
"msg.School_Id"
:options=
"schoolList"
emit-value
map-options
label=
"关联校区"
/>
</div>
</div>
...
...
@@ -56,7 +56,7 @@
<
template
v-slot:body-cell-CompleteProgress=
"props"
>
<q-td
auto-width
:props=
"props"
>
已进行
{{
props
.
row
.
CompleteProgress
}}
%
<q-linear-progress
rounded
size=
"20px"
:value=
"getProgress
2
(props.row.CompleteProgress,100)"
style=
"background-color:#EEEEEF;color:#3FC4FF"
<q-linear-progress
rounded
size=
"20px"
:value=
"getProgress(props.row.CompleteProgress,100)"
style=
"background-color:#EEEEEF;color:#3FC4FF"
class=
"q-mt-sm"
/>
</q-td>
</
template
>
...
...
@@ -162,6 +162,7 @@
msg
:
{
pageIndex
:
1
,
pageSize
:
12
,
rowsPerPage
:
12
,
ClassName
:
''
,
//班级名称
ClassStatus
:
0
,
//班级状态
TeacherName
:
''
,
//带班老师
...
...
@@ -182,7 +183,7 @@
this
.
getSchool
();
},
mounted
()
{
this
.
getList
();
this
.
get
Class
List
();
},
methods
:
{
//获取校区列表
...
...
@@ -212,16 +213,14 @@
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
()
this
.
get
Class
List
()
},
//获取菜单分页列表
getList
()
{
get
Class
List
()
{
this
.
loading
=
true
;
queryClassPage
(
this
.
msg
).
then
(
res
=>
{
console
.
log
(
"res"
,
res
)
this
.
loading
=
false
;
this
.
data
=
res
.
Data
.
PageData
;
console
.
log
(
"this.data"
,
this
.
data
)
this
.
pageCount
=
res
.
Data
.
PageCount
;
}).
catch
(()
=>
{
this
.
loading
=
false
...
...
@@ -230,7 +229,7 @@
//刷新页面
refreshPage
()
{
this
.
isShowClassForm
=
false
;
this
.
getList
();
this
.
get
Class
List
();
},
//新增修改菜单
EditCourse
(
obj
)
{
...
...
@@ -251,14 +250,7 @@
}
},
//获取进度条
getProgress
(
s1
,
s2
)
{
if
(
s1
&&
s2
&&
s2
!=
0
)
{
return
(
s1
/
s2
).
toFixed
(
2
);
}
return
0.00
;
},
//获取进度2
getProgress2
(
num
,
total
)
{
getProgress
(
num
,
total
)
{
if
(
num
==
0
||
total
==
0
){
return
0
;
}
...
...
src/pages/school/sysuser.vue
View file @
8b619127
...
...
@@ -18,8 +18,8 @@
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.EmployeeName"
label=
"员工姓名/账号"
maxlength=
"20"
/>
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.EmployeeName"
label=
"员工姓名/账号"
maxlength=
"20"
/>
</div>
<div
class=
"col-3"
>
<q-select
filled
stack-label
@
input=
"getDepartList(msg.School_Id),resetSearch()"
option-value=
"SId"
...
...
@@ -28,13 +28,11 @@
</div>
<div
class=
"col-3"
>
<selectTree
:treeData=
'DeptList'
:defaultArray=
"returnString"
nodeKey=
"DeptId"
:multiple=
"false"
labelKey=
"DeptName"
childrenKey=
"ChildList"
tipText=
"选择部门"
@
getChild=
"getChild"
></selectTree>
labelKey=
"DeptName"
childrenKey=
"ChildList"
tipText=
"选择部门"
@
getChild=
"getChild"
></selectTree>
</div>
<div
class=
"col-3"
>
<q-select
filled
stack-label
@
input=
"resetSearch"
option-value=
"PostId"
option-label=
"PostName"
v-model=
"msg.Post_Id"
ref=
"Post_Id"
:options=
"PostList"
label=
"岗位"
:dense=
"false"
emit-value
map-options
/>
v-model=
"msg.Post_Id"
ref=
"Post_Id"
:options=
"PostList"
label=
"岗位"
:dense=
"false"
emit-value
map-options
/>
</div>
<div
class=
"col-3"
>
<q-select
filled
@
input=
"resetSearch"
stack-label
option-value=
"Id"
option-label=
"Name"
...
...
@@ -57,50 +55,54 @@
range-separator=
"至"
start-placeholder=
"离职开始日期"
end-placeholder=
"离职结束日期"
>
</el-date-picker>
</
template
>
</q-field>
</q-field>
</div>
<div
class=
"col-3 Sysuser_Date"
>
<q-field
filled
class=
"col-6"
>
<
template
v-slot:control
>
<el-date-picker
v-model=
"dateListTwo"
@
change=
"resetSearch()"
format=
"MM-dd"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"生日开始时间"
end-placeholder=
"生日结束时间"
>
<el-date-picker
v-model=
"dateListTwo"
@
change=
"resetSearch()"
format=
"MM-dd"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"生日开始时间"
end-placeholder=
"生日结束时间"
>
</el-date-picker>
</
template
>
</q-field>
</div>
</div>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"新增员工"
@
click=
"EditManager(null)"
/>
<q-btn-dropdown
outline
color=
"dark"
label=
"更多"
>
<q-list>
<q-item
clickable
v-close-popup
@
click=
"getType(1)"
>
<q-item-section>
<q-item-label>
离职
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
@
click=
"resetPassWord()"
>
<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
selection=
"multiple"
:selected
.
sync=
"selected"
class=
"sticky-right-column-table sticky-column-table"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"Id"
>
<
template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
员工管理
</div>
<q-space
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"add"
label=
"新增员工"
@
click=
"EditManager(null)"
/>
<q-btn-dropdown
outline
color=
"dark"
size=
"sm"
label=
"更多"
>
<q-list>
<q-item
clickable
v-close-popup
@
click=
"getType(1)"
>
<q-item-section>
<q-item-label>
离职
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
@
click=
"resetPassWord()"
>
<q-item-section>
<q-item-label>
重置密码
</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
:selected
.
sync=
"selected"
class=
"sticky-right-column-table sticky-tow-column-table"
separator=
"none"
title=
"员工管理"
:data=
"data"
:columns=
"columns"
row-key=
"Id"
>
<
template
v-slot:body-cell-UserIcon=
"props"
>
<q-td
auto-width
:props=
"props"
>
<q-avatar
size=
"md"
v-if=
"props.value"
>
<img
:src=
"props.value"
/>
</q-avatar>
<q-avatar
size=
"md"
color=
"teal-10"
text-color=
"white"
v-if=
"!props.value"
>
{{
GetFirst
(
props
.
row
.
EmployeeName
)
}}
</q-avatar>
</q-td>
</
template
>
<
template
v-slot:body-cell-EmployeeName=
"props"
>
<q-td
:props=
"props"
>
<q-avatar
rounded
size=
"sm"
v-if=
"props.row.UserIcon"
>
<img
:src=
"props.row.UserIcon"
/>
</q-avatar>
<q-avatar
rounded
size=
"sm"
color=
"teal-10"
text-color=
"white"
v-if=
"!props.row.UserIcon"
>
{{
GetFirst
(
props
.
row
.
EmployeeName
)
}}
</q-avatar>
<span
class=
"text-blue cursor-pointer q-ml-sm"
>
{{
props
.
value
}}
</span>
<div
class=
"text-blue cursor-pointer"
style=
"color:#2961FE;margin-left:10px;cursor:pointer;"
@
click=
"getEmpInfoInfo(props.row)"
title=
"点击查看详情"
>
{{
props
.
value
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-StuSex=
"props"
>
...
...
@@ -135,12 +137,12 @@
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"syster_qDropdown"
>
<div
style=
"min-width:190px;width:100%"
class=
"syster_qDropdown"
>
<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)"
/>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"EditManager(props.row)"
/>
<q-btn-dropdown
flat
size=
"sm"
color=
"dark"
label=
"更多"
style=
"margin-left:10px;"
>
<q-btn-dropdown
outline
color=
"dark"
label=
"更多"
style=
"margin-left:10px;"
>
<q-list>
<q-item
clickable
v-close-popup
@
click=
"transFerJob(props.row,3)"
>
<q-item-section>
...
...
@@ -162,6 +164,8 @@
</manager-form>
<employee-set
v-if=
"isShowEmployeeSet"
:seting-obj=
"setObj"
@
close=
"closeSetForm"
@
success=
"refreshSetPage"
>
</employee-set>
<employee-info
v-if=
"isShowEmpInfo"
:save-obj=
"managerOption"
@
close=
"closeEmpInfoForm"
@
success=
"refreshPage"
>
</employee-info>
</div>
</div>
</template>
...
...
@@ -186,6 +190,7 @@
}
from
'../../api/system/dept.js'
import
managerForm
from
'../../components/school/manager/manager-form'
import
employeeSet
from
'../../components/school/manager/employee-set'
import
employeeInfo
from
'../../components/school/manager/employee-info'
import
selectTree
from
'../../components/common/select-tree'
export
default
{
meta
:
{
...
...
@@ -194,7 +199,8 @@
components
:
{
managerForm
,
selectTree
,
employeeSet
employeeSet
,
employeeInfo
},
data
()
{
return
{
...
...
@@ -204,7 +210,12 @@
required
:
true
,
label
:
''
,
align
:
'left'
,
},
},
{
name
:
'UserIcon'
,
label
:
''
,
field
:
'UserIcon'
,
align
:
'left'
,
},
{
name
:
'EmployeeName'
,
required
:
true
,
...
...
@@ -280,7 +291,6 @@
],
data
:
[],
loading
:
true
,
msg
:
{
pageIndex
:
1
,
pageSize
:
12
,
...
...
@@ -315,7 +325,8 @@
setObj
:
{
type
:
0
,
selected
:
[]
}
},
isShowEmpInfo
:
false
,
//是否显示员工信息
}
},
mounted
()
{
...
...
@@ -589,7 +600,20 @@
if
(
val
)
{
return
val
.
substr
(
0
,
1
);
}
}
},
//显示员工信息弹窗
getEmpInfoInfo
(
obj
)
{
if
(
obj
)
{
this
.
managerOption
=
obj
;
}
else
{
this
.
managerOption
=
null
;
}
this
.
isShowEmpInfo
=
true
;
},
//关闭员工信息弹窗
closeEmpInfoForm
()
{
this
.
isShowEmpInfo
=
false
;
},
},
}
...
...
src/pages/system/post.vue
View file @
8b619127
...
...
@@ -15,9 +15,9 @@
</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>
<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)"
/>
...
...
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