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
76bbd442
Commit
76bbd442
authored
Aug 28, 2024
by
liudong1993
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
0218700f
1582f3ec
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
339 additions
and
40 deletions
+339
-40
scrollBar.vue
src/components/common/scrollBar.vue
+61
-0
editOrder-form.vue
src/components/sale/editOrder-form.vue
+2
-2
student-left.vue
src/components/school/student/student-left.vue
+6
-6
stulist.vue
src/components/school/student/stulist.vue
+24
-28
makeup.vue
src/pages/course/makeup.vue
+2
-2
StudentProgress.vue
src/pages/stuMan/StudentProgress.vue
+218
-0
stuClassManage.vue
src/pages/stuMan/stuClassManage.vue
+21
-2
routes.js
src/router/routes.js
+5
-0
No files found.
src/components/common/scrollBar.vue
0 → 100644
View file @
76bbd442
<
template
>
<div
class=
"col"
></div>
</
template
>
<
script
>
export
default
{
props
:
{
targetBox
:
{
type
:
String
,
required
:
true
},
targetWrap
:
{
type
:
String
,
required
:
true
}
},
data
()
{
return
{};
},
methods
:
{
createResizeObserver
()
{
this
.
resizeObserver
=
new
ResizeObserver
(
entries
=>
{
for
(
let
entry
of
entries
)
{
console
.
log
(
"Element size changed:"
,
entry
.
contentRect
);
// 你可以在这里处理大小变化的逻辑
}
});
this
.
resizeObserver
.
observe
(
this
.
$refs
.
resizeElement
);
},
destroyResizeObserver
()
{
if
(
this
.
resizeObserver
)
{
this
.
resizeObserver
.
disconnect
();
}
}
},
mounted
()
{
this
.
createResizeObserver
();
},
beforeDestroy
()
{
this
.
destroyResizeObserver
();
}
};
</
script
>
<
style
>
.scroll-box
::-webkit-scrollbar
{
width
:
6px
;
height
:
6px
;
}
.scroll-box
::-webkit-scrollbar-thumb
{
background-color
:
#888
;
border-radius
:
6px
;
}
.scroll-box
::-webkit-scrollbar-thumb:hover
{
background-color
:
#555
;
}
.scroll-box
::-webkit-scrollbar-track
{
background-color
:
#f1f1f1
;
}
</
style
>
src/components/sale/editOrder-form.vue
View file @
76bbd442
...
...
@@ -98,7 +98,7 @@
</q-item>
</
template
>
</q-select>
<q-select
:disable=
"(modityOrderType==2)||(OrderMsg.JoinType==3)"
v-model=
"OrderMsg.CourseConsultantId"
<
!-- <
q-select :disable="(modityOrderType==2)||(OrderMsg.JoinType==3)" v-model="OrderMsg.CourseConsultantId"
:options="EmployeeList" filled use-input label="课程顾问" option-label="EmployeeName" option-value="Id"
ref="EmployeeName" class="col-6 q-pb-lg" emit-value map-options @filter="filterFn">
<template v-slot:no-option>
...
...
@@ -108,7 +108,7 @@
</q-item-section>
</q-item>
</template>
</q-select>
</q-select>
-->
<q-select
style=
"display:none;"
:disable=
"(modityOrderType==2)||(OrderMsg.JoinType==3)"
v-model=
"OrderMsg.CustomerId"
:options=
"myCustomerList"
filled
use-input
label=
"同行"
option-label=
"CustomerName"
option-value=
"CustomerId"
ref=
"CustomerName"
class=
"col-6 q-pb-lg"
emit-value
map-options
@
filter=
"cusfilterFn"
>
...
...
src/components/school/student/student-left.vue
View file @
76bbd442
...
...
@@ -280,11 +280,11 @@
<div
class=
"customer_info_component"
>
<div
class=
"customer_info_Stage"
>
<div
class=
"stage_label"
>
<span
class=
"student_require"
>
*
</span>
留学
类型
<span
class=
"student_require"
>
*
</span>
学员
类型
</div>
<div
class=
"stage_value"
>
<q-select
filled
v-model=
"customObj.StudentType"
style=
"width:185px"
dense
:options=
"StudentTypeList"
:disable=
"noEdit"
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
label=
"
留学
类型"
/>
:disable=
"noEdit"
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
label=
"
学员
类型"
/>
</div>
</div>
</div>
...
...
@@ -300,7 +300,7 @@
</div>
</div>
</div> -->
<div
class=
"customer_info_component"
>
<div
class=
"customer_info_component"
style=
"display:none;"
>
<div
class=
"customer_info_Stage"
>
<div
class=
"stage_label"
>
到访表
...
...
@@ -471,7 +471,7 @@
StuNeeds
:
0
,
//客户需求
StuTel
:
""
,
//显示使用
FileVoucher
:
""
,
TelType
:
4
,
//电话关联人员
TelType
:
3
,
//电话关联人员
StudentType
:
this
.
StudentType
,
},
//日语基础列表
...
...
@@ -494,10 +494,10 @@
MyTransListData
:
[],
StudentTypeList
:[{
Id
:
1
,
Name
:
"普通"
,
Name
:
"普通
客户
"
,
},{
Id
:
2
,
Name
:
"留学"
,
Name
:
"留学
客户
"
,
}],
checkMsg
:
{
StuId
:
0
,
...
...
src/components/school/student/stulist.vue
View file @
76bbd442
...
...
@@ -73,9 +73,9 @@
@
click=
"pushMode = true"
/>
<!-- <q-btn color="accent" outline class="q-mr-md" size="sm" icon="swap_horiz" label="推送课程顾问"
v-if="userInfo.IsCourseConsultant == 0" @click="pushMode = true" /> -->
<q-btn
color=
"accent"
v-if=
"StudentType !=2"
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转订单"
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转订单"
:disable=
"selection.length === 0"
@
click=
"transferOrder"
/>
<q-btn
color=
"accent"
v-if=
"StudentType==2"
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转留学"
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转留学"
:disable=
"selection.length === 0"
@
click=
"transferAbroad"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"add"
label=
"新增学员"
@
click=
"EditStudent(null)"
/>
<q-btn
v-if=
"authObj && authObj.isShowDownload&&IsDownLoadStu()"
color=
"accent"
class=
"q-mr-md"
size=
"sm"
...
...
@@ -265,7 +265,7 @@
:checkType=
"checkType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"referDataHandler"
>
</studentRight-form>
<studentAdd-form
v-if=
"isShowAdd"
:
StudentType=
"StudentType"
:
save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
<studentAdd-form
v-if=
"isShowAdd"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
</studentAdd-form>
<transfer-order
v-if=
"isShowTransfer"
:select=
"selection"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
</transfer-order>
...
...
@@ -309,10 +309,6 @@
type
:
Array
,
default
:
null
},
StudentType
:
{
type
:
Number
,
default
:
1
},
//是否显示转交按钮
isJudgeTrans
:
{
type
:
Number
,
...
...
@@ -367,11 +363,11 @@
align
:
"left"
,
field
:
row
=>
row
.
StuName
},
//
{
//
name: "CurseManager",
//
label: "课程顾问",
//
align: "left"
//
},
{
name
:
"CurseManager"
,
label
:
"课程顾问"
,
align
:
"left"
},
{
name
:
"TeacherManager"
,
label
:
"协助老师"
,
...
...
@@ -382,12 +378,12 @@
label
:
"是否报名"
,
align
:
"left"
},
//
{
//
name: "VisitCount",
//
label: "到访次数",
//
field: "VisitCount",
//
align: "left"
//
},
{
name
:
"VisitCount"
,
label
:
"到访次数"
,
field
:
"VisitCount"
,
align
:
"left"
},
{
name
:
"TrialLessonCount"
,
label
:
"试听次数"
,
...
...
@@ -827,8 +823,8 @@
let
CreateTimeStr2
=
date
.
formatDate
(
new
Date
(
'2023-03-22'
),
'YYYY-MM-DD'
)
if
(
CreateTimeStr
>=
CreateTimeStr2
)
{
if
(
!
this
.
selection
[
0
].
FileVoucher
)
{
//
this.$message.error('需先上传学员到访表')
//
return
this
.
$message
.
error
(
'需先上传学员到访表'
)
return
}
}
const
firstId
=
this
.
selection
[
0
].
CustomerId
;
...
...
@@ -836,12 +832,12 @@
return
e
.
CustomerId
==
firstId
;
});
if
(
!
flag
)
{
//
this.$q.notify({
//
type: "negative",
//
position: "top",
//
message: `所属同行不一致,请重新选择`
//
});
//
return;
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
message
:
`所属同行不一致,请重新选择`
});
return
;
}
this
.
isShowTransfer
=
true
;
},
...
...
@@ -851,8 +847,8 @@
let
CreateTimeStr2
=
date
.
formatDate
(
new
Date
(
'2023-03-22'
),
'YYYY-MM-DD'
)
if
(
CreateTimeStr
>=
CreateTimeStr2
)
{
if
(
!
this
.
selection
[
0
].
FileVoucher
)
{
//
this.$message.error('需先上传学员到访表')
//
return
this
.
$message
.
error
(
'需先上传学员到访表'
)
return
}
}
this
.
isShowAbroad
=
true
;
...
...
src/pages/course/makeup.vue
View file @
76bbd442
...
...
@@ -27,8 +27,8 @@
</div>
<div
class=
"col-3"
>
<div
class=
"col-3 Sysuser_Date"
>
<q-field
filled
>
<template
v-slot:control
>
<q-field
filled
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.StartDate"
type=
"date"
placeholder=
"开始日期"
value-format=
"yyyy-MM-dd"
size=
"small"
style=
"width:47%;"
@
change=
"refreshPage"
clear-icon=
"iconfont icon-guanbi"
>
</el-date-picker>
至
...
...
src/pages/stuMan/StudentProgress.vue
0 → 100644
View file @
76bbd442
<
template
>
<!--
<div
class=
"page-body"
style=
"height:calc(100% - 30px);"
>
-->
<div
class=
"sptable-box"
>
<div
class=
"sptable-wrap"
>
<table
class=
"sptable"
>
<thead>
<tr
class=
"sticky-header"
>
<th
class=
"sticky-column"
>
Header 1
</th>
<th>
Header 2
</th>
<th>
Header 3
</th>
<th>
Header 4
</th>
<th>
Header 1
</th>
<th>
Header 2
</th>
<th>
Header 3
</th>
<th>
Header 4
</th>
<th>
Header 1
</th>
<th>
Header 2
</th>
<th>
Header 3
</th>
<th>
Header 4
</th>
<th>
Header 1
</th>
<th>
Header 2
</th>
<th>
Header 3
</th>
<th>
Header 4
</th>
<th>
Header 1
</th>
<th>
Header 2
</th>
<th>
Header 3
</th>
<th>
Header 4
</th>
<!-- 更多表头列... -->
</tr>
</thead>
<tbody>
<!-- 表格内容 -->
<tr
v-for=
"i in 50"
:key=
"i"
>
<td
class=
"sticky-column"
>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"cusor-tools row"
>
<div
class=
"item active"
>
N5
</div>
<div
class=
"item"
>
N4
</div>
<div
class=
"item"
>
N3
</div>
<div
class=
"item"
>
N2
</div>
<div
class=
"item"
>
N1
</div>
<div
class=
"item"
>
一对一中教
</div>
</div>
</div>
<!--
</div>
-->
</
template
>
<
script
>
import
scrollBar
from
'src/components/common/scrollBar.vue'
;
export
default
{
meta
:
{
title
:
"学员学习进度表"
},
data
()
{
return
{};
},
methods
:
{}
};
</
script
>
<
style
>
.sptable-box
{
width
:
100%
;
height
:
100%
;
overflow
:
auto
;
overflow
:
overlay
;
padding-bottom
:
20px
;
}
.sptable-box
.sptable-wrap
{
position
:
relative
;
}
.sptable-box
::-webkit-scrollbar
{
width
:
6px
;
height
:
6px
;
}
.sptable-box
::-webkit-scrollbar-thumb
{
background-color
:
#888
;
border-radius
:
6px
;
}
.sptable-box
::-webkit-scrollbar-thumb:hover
{
background-color
:
#555
;
}
.sptable-box
::-webkit-scrollbar-track
{
background-color
:
#f1f1f1
;
}
.sptable
{
border-collapse
:
collapse
;
border
:
1px
solid
#000
;
border-top
:
none
;
min-width
:
100%
;
}
.sptable
td
,
.sptable
th
{
border-right
:
1px
solid
#000
;
border-bottom
:
1px
solid
#000
;
padding
:
3px
6px
;
min-width
:
200px
;
}
.sptable
tr
td
:last-child
{
border-right
:
none
;
}
.sptable
tr
:last-child
td
:last-child
{
border
:
none
;
}
.sptable
.sticky-header
th
{
position
:
sticky
;
top
:
0px
;
background
:
#FFF
;
z-index
:
2
;
border-bottom
:
none
;
}
.sptable
.sticky-column
{
position
:
sticky
;
left
:
0px
;
background
:
#FFF
;
box-shadow
:
inset
-4px
-2px
0px
-3px
#1FBB7D
;
border-right
:
0
;
z-index
:
1
;
}
.sptable
.sticky-header
th
::before
,
.sptable
.sticky-header
th
::after
,
.sptable
.sticky-column
::before
{
position
:
absolute
;
content
:
''
;
display
:
block
;
width
:
1px
;
background
:
#000
;
top
:
0
;
left
:
-1px
;
bottom
:
0
;
z-index
:
5
;
height
:
100%
;
}
.sptable
.sticky-header
th
::before
{
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
1px
;
}
.sptable
.sticky-header
th
::after
{
top
:
unset
;
bottom
:
0
;
left
:
0
;
width
:
100%
;
height
:
1px
;
background
:
#1FBB7D
;
}
.sptable
.sticky-header
.sticky-column
{
z-index
:
3
;
border-right
:
0
;
}
.sptable-box
.cusor-tools
{
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
height
:
27px
;
background
:
#E3E6ED
;
border-top
:
1px
solid
#C9CCD2
;
border-bottom
:
1px
solid
#C9CCD2
;
border-left
:
1px
solid
#000
;
border-right
:
1px
solid
#000
;
z-index
:
9
;
padding
:
0
30px
;
}
.sptable-box
.cusor-tools
.item
{
height
:
22px
;
line-height
:
22px
;
border
:
1px
solid
transparent
;
border-radius
:
5px
;
border-top-left-radius
:
0
;
border-top-right-radius
:
0
;
font-size
:
12px
;
color
:
#000
;
padding
:
0
15px
;
cursor
:
pointer
;
position
:
relative
;
}
.sptable-box
.cusor-tools
.item
:hover
{
background
:
#CFCFCF
;
}
.sptable-box
.cusor-tools
.item.active
{
background
:
#FFF
!important
;
cursor
:
default
!important
;
border-color
:
#C9CCD2
;
border-top
:
transparent
;
margin-top
:
-1px
;
font-weight
:
bold
;
color
:
#007A6B
;
height
:
23px
;
line-height
:
23px
;
}
</
style
>
src/pages/stuMan/stuClassManage.vue
View file @
76bbd442
...
...
@@ -52,8 +52,8 @@
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"getClassList"
standout=
"bg-primary text-white"
v-model=
"msg.CourseSubject"
:options=
"CourseSubjectList"
option-label=
"SubjectName"
option-value=
"Id"
emit-value
map-options
label=
"所属科目"
clearable
/>
:options=
"CourseSubjectList"
option-label=
"SubjectName"
option-value=
"Id"
emit-value
map-options
label=
"所属科目"
clearable
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"getClassList"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
...
...
@@ -67,6 +67,18 @@
<q-input
@
change=
"getClassList"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.CourseName"
label=
"学习课程"
@
clear=
"getClassList"
maxlength=
"20"
/>
</div>
<div
class=
"col-3"
>
<q-input
v-model=
"msg.StartTime"
mask=
"date"
label=
"开班时间"
standout=
"bg-primary text-white"
@
update:model-value=
"()=>getClassList"
>
<template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qCStartTime"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"msg.StartTime"
mask=
"YYYY-MM-DD"
@
input=
"() =>changeDate()"
@
update:model-value=
"()=>getClassList"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"getClassList"
standout=
"bg-primary text-white"
option-value=
"SId"
option-label=
"SName"
v-model=
"msg.School_Id"
:options=
"schoolList"
emit-value
map-options
label=
"关联校区"
/>
...
...
@@ -116,6 +128,8 @@
School_Id
:
-
1
,
//关联校区
ClassNo
:
''
,
//班号
CourseSubject
:
""
,
//所属科目
StartTime
:
""
,
//开班开始时间
EndTime
:
""
,
//开班结束时间
},
classStatusList
:
[],
//班级状态列表
schoolList
:
[],
//校区列表
...
...
@@ -147,6 +161,11 @@
this
.
getClassList
();
},
methods
:
{
changeDate
()
{
this
.
$refs
.
qCStartTime
.
hide
();
this
.
getClassList
();
},
queryCourseSubject
()
{
getCourseSubject
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
...
...
src/router/routes.js
View file @
76bbd442
...
...
@@ -1861,6 +1861,11 @@ const routes = [{
component
:
()
=>
import
(
"pages/stuMan/coffeeManage/index"
)
},
{
path
:
"/stuMan/sp"
,
//学管 商品管理
component
:
()
=>
import
(
"pages/stuMan/StudentProgress"
)
},
{
path
:
"/stuMan/coffeeManage/coffeeOrderList"
,
//学管 咖啡订单列表
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