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
4aec8121
Commit
4aec8121
authored
Dec 29, 2020
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
c7884d55
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
566 additions
and
545 deletions
+566
-545
index.js
src/api/system/index.js
+4
-0
school-form.vue
src/components/school/schoolarea/school-form.vue
+6
-2
dept-form.vue
src/components/system/dept-form.vue
+5
-5
menu-form.vue
src/components/system/menu-form.vue
+5
-5
menufunction-form.vue
src/components/system/menufunction-form.vue
+5
-5
role-form.vue
src/components/system/role-form.vue
+1
-1
japaneseTrain.vue
src/pages/sale/japaneseTrain.vue
+535
-519
dept.vue
src/pages/system/dept.vue
+1
-1
menu.vue
src/pages/system/menu.vue
+2
-3
post.vue
src/pages/system/post.vue
+1
-2
role.vue
src/pages/system/role.vue
+1
-2
No files found.
src/api/system/index.js
View file @
4aec8121
...
...
@@ -57,6 +57,10 @@ export function getMenuLevelList() {
*/
export
function
getDeptTierList
()
{
var
deptTierOpts
=
[{
label
:
'不限'
,
value
:
0
},
{
label
:
'1级'
,
value
:
1
},
...
...
src/components/school/schoolarea/school-form.vue
View file @
4aec8121
...
...
@@ -9,7 +9,7 @@
<div
class=
"row wrap"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"objOption.SName"
ref=
"SName"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"校区名称"
:rules=
"[val => !!val || '请填写校区名称']"
/>
<q-input
filled
stack-label
maxlength=
"
2
0"
:dense=
"false"
v-model=
"objOption.SAddress"
ref=
"SAddress"
<q-input
filled
stack-label
maxlength=
"
10
0"
:dense=
"false"
v-model=
"objOption.SAddress"
ref=
"SAddress"
class=
"col-6 q-pb-lg"
label=
"校区地址"
:rules=
"[val => !!val || '请填写校区地址']"
/>
<q-select
class=
"col-6 q-pb-lg q-pr-lg"
clearable
filled
stack-label
use-input
option-value=
"Id"
option-label=
"EmployeeName"
v-model=
"objOption.ManagerId"
ref=
"ManagerId"
:options=
"EmployeeList"
...
...
@@ -24,7 +24,7 @@
</q-select>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"objOption.SLinkTel"
ref=
"SLinkTel"
class=
"col-6 q-pb-lg"
label=
"校区联系电话"
:rules=
"[val => !!val || '请填写校区联系电话']"
/>
<q-input
filled
stack-label
maxlength=
"
2
0"
:dense=
"false"
v-model=
"objOption.Remark"
<q-input
filled
stack-label
maxlength=
"
10
0"
:dense=
"false"
v-model=
"objOption.Remark"
class=
"col-6 q-pb-lg q-pr-lg"
label=
"校区备注"
/>
<selectTree
v-if=
"DeptList&&DeptList.length>0"
:treeData=
'DeptList'
:defaultArray=
"returnString"
nodeKey=
"DeptId"
:multiple=
"false"
labelKey=
"DeptName"
childrenKey=
"ChildList"
tipText=
"上级部门"
...
...
@@ -155,6 +155,10 @@
if
(
res
.
Code
==
1
)
{
var
jsonData
=
res
.
Data
;
if
(
jsonData
&&
jsonData
.
length
>
0
)
{
jsonData
.
unshift
({
Id
:
0
,
EmployeeName
:
"请选择"
});
this
.
AllemployeeList
=
JSON
.
parse
(
JSON
.
stringify
(
jsonData
));
this
.
EmployeeList
=
JSON
.
parse
(
JSON
.
stringify
(
jsonData
));;
}
...
...
src/components/system/dept-form.vue
View file @
4aec8121
...
...
@@ -32,9 +32,9 @@
</q-item>
</
template
>
</q-select>
<q-input
filled
stack-label
maxlength=
"
5
0"
:dense=
"false"
v-model=
"objOption.DeptTel"
ref=
"DeptTel"
<q-input
filled
stack-label
maxlength=
"
3
0"
:dense=
"false"
v-model=
"objOption.DeptTel"
ref=
"DeptTel"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"部门电话"
/>
<q-input
filled
stack-label
maxlength=
"
5
0"
:dense=
"false"
v-model=
"objOption.DeptSort"
ref=
"DeptSort"
<q-input
filled
stack-label
maxlength=
"
1
0"
:dense=
"false"
v-model=
"objOption.DeptSort"
ref=
"DeptSort"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"排序"
/>
<q-select
filled
stack-label
option-value=
"value"
option-label=
"label"
v-model=
"objOption.IsCompany "
ref=
"DeptTier"
:options=
"IsCompanyL"
label=
"是否校区"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
...
...
@@ -228,7 +228,7 @@
this
.
objOption
.
DeptTier
=
res
.
Data
.
DeptTier
;
this
.
objOption
.
School_Id
=
res
.
Data
.
School_Id
;
this
.
tempManager
=
res
.
Data
.
ManagerList
;
this
.
tempPost
=
res
.
Data
.
ChoosePostList
;
this
.
tempPost
=
res
.
Data
.
ChoosePostList
;
})
this
.
optionTitle
=
"修改部门信息"
}
else
{
...
...
@@ -243,7 +243,7 @@
this
.
objOption
.
DeptTier
=
0
;
this
.
objOption
.
School_Id
=
0
;
this
.
tempManager
=
[];
this
.
tempPost
=
[];
this
.
tempPost
=
[];
}
},
//关闭弹窗
...
...
@@ -273,7 +273,7 @@
//去掉第一个字符
tempStr
=
tempStr
.
substr
(
1
);
}
this
.
objOption
.
ChoosePostList
=
this
.
tempPost
;
this
.
objOption
.
ChoosePostList
=
this
.
tempPost
;
this
.
objOption
.
ManagerIds
=
tempStr
;
saveDeptInfo
(
this
.
objOption
).
then
(
res
=>
{
this
.
saveLoading
=
false
...
...
src/components/system/menu-form.vue
View file @
4aec8121
...
...
@@ -15,16 +15,16 @@
<q-toggle
size=
"md"
label=
"固定用户中心"
color=
"primary"
:false-value=
"0"
:true-value=
"1"
v-model=
"objOption.IsUserCenter"
/>
</div>
<q-select
class=
"col-6 q-p
b
-lg"
v-model=
"objOption.MenuType"
:options=
"MenuTypeOpts"
emit-value
map-options
<q-select
class=
"col-6 q-p
r
-lg"
v-model=
"objOption.MenuType"
:options=
"MenuTypeOpts"
emit-value
map-options
label=
"菜单类型"
@
input=
"queryMenuList()"
/>
<q-select
class=
"col-6 q-pb-lg"
v-if=
"objOption.IsUserCenter==0"
v-model=
"objOption.MenuLevel"
:options=
"MenuLevelOpts"
emit-value
map-options
<q-select
class=
"col-6 q-p
r-lg q-p
b-lg"
v-if=
"objOption.IsUserCenter==0"
v-model=
"objOption.MenuLevel"
:options=
"MenuLevelOpts"
emit-value
map-options
label=
"菜单等级"
@
input=
"queryMenuList()"
/>
<q-select
v-if=
"objOption.IsUserCenter==0"
:option-value=
"(item) => item === null ? null : item.MenuId"
option-label=
"MenuName"
v-model=
"objOption.ParentId"
:options=
"MenuList"
label=
"上级菜单"
:dense=
"false"
emit-value
map-options
class=
"col-6 q-p
b
-lg"
/>
<q-input
stack-label
maxlength=
"
5
0"
:dense=
"false"
v-model=
"objOption.MenuIcon"
class=
"col-6 q-pr-lg q-pb-lg"
class=
"col-6 q-p
r
-lg"
/>
<q-input
stack-label
maxlength=
"
6
0"
:dense=
"false"
v-model=
"objOption.MenuIcon"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"图标"
/>
<q-input
filled
stack-label
maxlength=
"
5
0"
:dense=
"false"
v-model=
"objOption.SortNum"
<q-input
filled
stack-label
maxlength=
"
1
0"
:dense=
"false"
v-model=
"objOption.SortNum"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"排序"
/>
<div
class=
"col-6 q-pr-lg q-pb-lg q-pt-lg"
>
<q-toggle
size=
"md"
label=
"状态"
color=
"primary"
:false-value=
"1"
:true-value=
"0"
...
...
src/components/system/menufunction-form.vue
View file @
4aec8121
...
...
@@ -9,9 +9,9 @@
<div
class=
"row wrap"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"objOption.FunctionName"
ref=
"FunctionName"
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.FunctionCode"
ref=
"FunctionCode"
<q-input
filled
stack-label
maxlength=
"
25
"
:dense=
"false"
v-model=
"objOption.FunctionCode"
ref=
"FunctionCode"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"功能编码"
/>
<q-input
filled
stack-label
maxlength=
"
2
00"
:dense=
"false"
v-model=
"objOption.Remarks"
ref=
"Remarks"
<q-input
filled
stack-label
maxlength=
"
1
00"
:dense=
"false"
v-model=
"objOption.Remarks"
ref=
"Remarks"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"功能备注"
/>
<div
class=
"col-6 q-pr-lg q-pb-lg q-pt-lg"
>
<q-toggle
size=
"md"
label=
"状态"
color=
"primary"
:false-value=
"1"
:true-value=
"0"
...
...
@@ -40,9 +40,9 @@
type
:
Object
,
default
:
null
},
paramObj
:{
type
:
Number
,
default
:
0
paramObj
:
{
type
:
String
,
default
:
"0"
}
},
data
()
{
...
...
src/components/system/role-form.vue
View file @
4aec8121
...
...
@@ -157,7 +157,7 @@
<div
class=
"text-caption q-mb-lg text-dark-6"
>
<span
class=
"role_Line"
></span>
角色信息
</div>
<div
class=
"row wrap"
>
<q-input
filled
stack-label
maxlength=
"
5
0"
:dense=
"false"
v-model=
"objOption.RoleName"
ref=
"RoleName"
<q-input
filled
stack-label
maxlength=
"
2
0"
:dense=
"false"
v-model=
"objOption.RoleName"
ref=
"RoleName"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"角色名称"
:rules=
"[val => !!val || '请填写角色名称']"
/>
</div>
</div>
...
...
src/pages/sale/japaneseTrain.vue
View file @
4aec8121
<
template
>
<div
class=
"page-body japaneseTrain"
>
<div
class=
"page-body japaneseTrain"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
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
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassName"
label=
"班级名称"
@
clear=
"resetSearch"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
option-value=
"TId"
option-label=
"TeacherName"
v-model=
"msg.Teacher_Id"
:options=
"TeacherList"
emit-value
map-options
label=
"带班老师"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
option-value=
"CourseId"
option-label=
"CourseName"
v-model=
"msg.CouseId"
:options=
"ClassList"
emit-value
map-options
label=
"学习课程"
/>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3 Sysuser_Date"
>
<q-field
filled
>
<template
v-slot:control
>
<el-date-picker
v-model=
"dateList"
@
change=
"resetSearch()"
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=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
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
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassName"
label=
"班级名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
option-value=
"TId"
option-label=
"TeacherName"
v-model=
"msg.Teacher_Id"
:options=
"TeacherList"
emit-value
map-options
label=
"带班老师"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
option-value=
"CourseId"
option-label=
"CourseName"
v-model=
"msg.CouseId"
:options=
"ClassList"
emit-value
map-options
label=
"学习课程"
/>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3 Sysuser_Date"
>
<q-field
filled
>
<template
v-slot:control
>
<el-date-picker
v-model=
"dateList"
@
change=
"resetSearch"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"开学日期"
end-placeholder=
"结束日期"
clearable
@
clear=
"resetSearch"
>
</el-date-picker>
</
template
>
</q-field>
</div>
</div>
</div>
</div>
<div
class=
"page-content"
>
<div
style=
"width: 100%;display: flex;justify-content: space-between"
>
<span
style=
"font-size: 20px;font-weight: 400; "
>
日语培训产品列表
</span>
<span>
<q-toggle
v-model=
"msg.Q_CanApply"
label=
"只看有余位"
class=
"q-mb-md"
false-value=
"0"
true-value=
"1"
@
input=
"resetSearch"
/>
</span>
</div>
<div
class=
"productQueryList"
v-loading=
'loading'
>
<ul
v-if=
"data.length!=0"
>
<li
v-for=
"(item,index) in data"
:key=
"index"
>
<div
class=
"dline"
>
<div
class=
"d1"
>
<div
class=
"di-title"
>
{{item.ClassName}}
</div>
<div
class=
"di-c"
style=
"margin-top: 25px;"
><img
src=
"../../assets/images/administration/kezname.png"
alt=
""
style=
"width: 14px;height: 14px;margin-right: 5px;"
>
{{item.CourseName}}
</div>
<div
class=
"di-c"
><img
src=
"../../assets/images/administration/period.png"
alt=
""
style=
"width: 14px;height: 14px;margin-right: 5px;"
>
{{item.ClassHours?item.ClassHours:'0'}}课时
</div>
</div>
<div
class=
"d2"
>
<div
class=
"row"
style=
"align-items: center"
>
<span
class=
"d2-n"
>
带课老师
</span><img
:src=
"item.TeacherHead"
alt=
""
style=
"width: 26px;height: 26px;border-radius: 4px;margin-right: 5px;color: #2961FE"
>
{{item.TeacherName}}
</div>
<div><span
class=
"d2-n"
>
上课教室
</span>
{{item.RoomName}}
</div>
<div><span
class=
"d2-n"
>
上课时间
</span><span
style=
"text-decoration:underline;color:#111111;cursor: pointer"
>
{{item.ClassStyleName}}
</span><span
class=
"iconfont icon-xiangxia"
style=
"color: #2961FE;font-size: 10px"
></span>
<q-popup-proxy>
<q-banner>
<div
class=
"price-popup"
style=
"padding: 10px"
>
<div
class=
"popup-top"
>
<div
style=
"color:#2D2D2D;font-size: 14px;font-weight: bold"
>
上课时间
</div>
<div
style=
"background: #EEEEEF;font-size: 12px;color: #2D2D2D;font-weight: bold;height: 40px;width: 454px;line-height: 40px;display: flex;justify-content: space-around;margin-top: 20px"
v-if=
"item.ClassStyle==1"
>
<span>
周末
</span>
<span>
周一
</span>
<span>
周二
</span>
<span>
周三
</span>
<span>
周四
</span>
<span>
周五
</span>
<span>
周六
</span>
</div>
<div
v-if=
"item.ClassStyle==1"
style=
"font-size: 12px;color: #2D2D2D;font-weight: bold;height: 40px;width: 454px;line-height: 40px;display: flex;justify-content: space-around;border-bottom: 1px solid rgba(138, 138, 138, 0.09);margin-bottom: 20px"
>
<span
v-for=
"(j,k) in item.weeks"
:key=
"k"
style=
"width: 24.5px;"
>
<img
src=
"../../assets/images/administration/gou.png"
alt=
""
style=
"width: 16px;height: 12px"
v-if=
"j.select==true"
>
</span>
</div>
<div
v-if=
"item.ClassStyle==2"
class=
"row wrap"
style=
"width: 454px;"
>
<div
v-for=
"(j,k) in item.month"
style=
"width: 45.4px;height: 30px;line-height: 30px;text-align: center;font-size: 12px;color: #2D2D2D;margin-top: 10px;!important"
>
<div
:style=
"{'width': '45.4px','height': '30px',background:j.select==true?'rgba(41, 97, 254, 0.2)':'#FFF'}"
>
{{j.name}}
</div>
</div>
</div>
<div
v-if=
"item.ClassStyle==3"
>
<el-calendar
v-model=
"elvalue"
id=
"calendar"
style=
"width: 500px;"
>
<!-- 这里使用的是 2.5 slot 语法,对于新项目请使用 2.6 slot 语法-->
<
template
slot=
"dateCell"
slot-scope=
"{date, data}"
class=
"row"
style=
"height: 45px"
>
<!--自定义内容-->
<div
class=
"calendar-day"
>
{{
data
.
day
.
split
(
'-'
).
slice
(
2
).
join
(
'-'
)
}}
</div>
<div
v-for=
"x in item.ClassPlanList"
>
<div
v-if=
"x.ClassDate == data.day"
style=
"align-items: center;justify-content: center;margin-top: 15px"
class=
"row"
>
<img
src=
"../../assets/images/administration/gou.png"
alt=
""
style=
"width: 16px;height: 12px"
>
</div>
</div>
</
template
>
</el-calendar>
</div>
<div
style=
"color:#2D2D2D;font-size: 14px;font-weight: bold;"
>
课程安排
</div>
<div
style=
"width:100%;height: 40px;background: #EEEEEF;font-size: 12px;color: #2D2D2D;font-weight: 600;margin-top: 20px;display: flex;align-items: center"
>
<div
style=
"width: 50%;padding-left: 20px"
>
课节
</div>
<div>
时间
</div>
</div>
<div
style=
"font-size: 12px;color: #2D2D2D;font-weight: bold;height: 40px;width: 454px;line-height: 40px;display: flex;border-bottom: 1px solid rgba(138, 138, 138, 0.09);"
v-for=
"(zx,zi) in item.ClassTimeList"
:key=
"zi"
>
<div
style=
"width: 50%;padding-left: 20px"
>
第{{zi+1}}节
</div>
<div>
{{zx.StartTime}}-{{zx.EndTime}}
</div>
</div>
</div>
</div>
</q-banner>
</q-popup-proxy>
<div
style=
"width: 100%;display: flex;justify-content: space-between"
>
<span
style=
"font-size: 20px;font-weight: 400; "
>
日语培训产品列表
</span>
<span>
<q-toggle
v-model=
"msg.Q_CanApply"
label=
"只看有余位"
class=
"q-mb-md"
false-value=
"0"
true-value=
"1"
@
input=
"resetSearch"
/>
</span>
</div>
<div
class=
"productQueryList"
v-loading=
'loading'
>
<ul
v-if=
"data.length!=0"
>
<li
v-for=
"(item,index) in data"
:key=
"index"
>
<div
class=
"dline"
>
<div
class=
"d1"
>
<div
class=
"di-title"
>
{{item.ClassName}}
</div>
<div
class=
"di-c"
style=
"margin-top: 25px;"
><img
src=
"../../assets/images/administration/kezname.png"
alt=
""
style=
"width: 14px;height: 14px;margin-right: 5px;"
>
{{item.CourseName}}
</div>
<div
class=
"di-c"
><img
src=
"../../assets/images/administration/period.png"
alt=
""
style=
"width: 14px;height: 14px;margin-right: 5px;"
>
{{item.ClassHours?item.ClassHours:'0'}}课时
</div>
</div>
<div
class=
"d2"
>
<div
class=
"row"
style=
"align-items: center"
>
<span
class=
"d2-n"
>
带课老师
</span><img
:src=
"item.TeacherHead"
alt=
""
style=
"width: 26px;height: 26px;border-radius: 4px;margin-right: 5px;color: #2961FE"
>
{{item.TeacherName}}
</div>
<div><span
class=
"d2-n"
>
上课教室
</span>
{{item.RoomName}}
</div>
<div><span
class=
"d2-n"
>
上课时间
</span><span
style=
"text-decoration:underline;color:#111111;cursor: pointer"
>
{{item.ClassStyleName}}
</span><span
class=
"iconfont icon-xiangxia"
style=
"color: #2961FE;font-size: 10px"
></span>
<q-popup-proxy>
<q-banner>
<div
class=
"price-popup"
style=
"padding: 10px"
>
<div
class=
"popup-top"
>
<div
style=
"color:#2D2D2D;font-size: 14px;font-weight: bold"
>
上课时间
</div>
<div
style=
"background: #EEEEEF;font-size: 12px;color: #2D2D2D;font-weight: bold;height: 40px;width: 454px;line-height: 40px;display: flex;justify-content: space-around;margin-top: 20px"
v-if=
"item.ClassStyle==1"
>
<span>
周末
</span>
<span>
周一
</span>
<span>
周二
</span>
<span>
周三
</span>
<span>
周四
</span>
<span>
周五
</span>
<span>
周六
</span>
</div>
<div
v-if=
"item.ClassStyle==1"
style=
"font-size: 12px;color: #2D2D2D;font-weight: bold;height: 40px;width: 454px;line-height: 40px;display: flex;justify-content: space-around;border-bottom: 1px solid rgba(138, 138, 138, 0.09);margin-bottom: 20px"
>
<span
v-for=
"(j,k) in item.weeks"
:key=
"k"
style=
"width: 24.5px;"
>
<img
src=
"../../assets/images/administration/gou.png"
alt=
""
style=
"width: 16px;height: 12px"
v-if=
"j.select==true"
>
</span>
</div>
<div
v-if=
"item.ClassStyle==2"
class=
"row wrap"
style=
"width: 454px;"
>
<div
v-for=
"(j,k) in item.month"
style=
"width: 45.4px;height: 30px;line-height: 30px;text-align: center;font-size: 12px;color: #2D2D2D;margin-top: 10px;!important"
>
<div
:style=
"{'width': '45.4px','height': '30px',background:j.select==true?'rgba(41, 97, 254, 0.2)':'#FFF'}"
>
{{j.name}}
</div>
</div>
</div>
<div
class=
"d3"
>
<div
style=
"margin: 0"
>
招生信息
</div>
<div><span
class=
"d2-n"
>
开始上课时间
</span><span
class=
"d3-s"
>
{{item.OpenTime}}
</span></div>
<div><span
class=
"d2-n"
>
截止报名时间
</span><span
class=
"d3-s"
>
{{item.EndOrderTime}}
</span></div>
</div>
<div
class=
"d4"
>
<div
style=
"margin: 0"
>
价格信息
</div>
<div><span
class=
"d2-n"
>
原价
</span><span>
{{item.OriginalPrice.toFixed(2)}}
</span></div>
<div><span
class=
"d2-n"
>
售价
</span><span
style=
"color:#f5576c;font-weight: bold"
>
{{item.SellPrice.toFixed(2)}}
</span></div>
<div
v-if=
"item.IsStepPrice==1 && item.ClassStepPriceList.length>0"
style=
"cursor: pointer"
>
更多优惠价格
<span
class=
"iconfont icon-xiangxia"
style=
"color: #2961FE;font-size: 10px"
></span>
<q-popup-proxy>
<q-banner>
<div
class=
"price-popup"
>
<div
class=
"price-popup-item"
v-for=
"(x,index2) in item.ClassStepPriceList"
:key=
"index2"
style=
"margin: 5px 0"
>
<span
style=
"color: #2D2D2D;font-weight: bold"
>
{{x.PersionNum}}人报名
<span
style=
"color:#2860FB;margin-left: 15px"
>
{{x.PersionPrice.toFixed(2)}}
</span></span>
</div>
</div>
</q-banner>
</q-popup-proxy>
</div>
<div
v-if=
"item.ClassStyle==3"
>
<el-calendar
v-model=
"elvalue"
id=
"calendar"
style=
"width: 500px;"
>
<!-- 这里使用的是 2.5 slot 语法,对于新项目请使用 2.6 slot 语法-->
<
template
slot=
"dateCell"
slot-scope=
"{date, data}"
class=
"row"
style=
"height: 45px"
>
<!--自定义内容-->
<div
class=
"calendar-day"
>
{{
data
.
day
.
split
(
'-'
).
slice
(
2
).
join
(
'-'
)
}}
</div>
<div
v-for=
"x in item.ClassPlanList"
>
<div
v-if=
"x.ClassDate == data.day"
style=
"align-items: center;justify-content: center;margin-top: 15px"
class=
"row"
>
<img
src=
"../../assets/images/administration/gou.png"
alt=
""
style=
"width: 16px;height: 12px"
>
</div>
</div>
</
template
>
</el-calendar>
</div>
<div
style=
"color:#2D2D2D;font-size: 14px;font-weight: bold;"
>
课程安排
</div>
<div
style=
"width:100%;height: 40px;background: #EEEEEF;font-size: 12px;color: #2D2D2D;font-weight: 600;margin-top: 20px;display: flex;align-items: center"
>
<div
style=
"width: 50%;padding-left: 20px"
>
课节
</div>
</div>
<div
class=
"d5"
>
<div
style=
"margin: 0"
>
名额信息
</div>
<div><span
class=
"d2-n"
>
计划招生人数
</span><span>
{{item.ClassPersion}}人
</span></div>
<div><span
class=
"d2-n"
>
剩余招生名额
</span><span
style=
"color:#f5576c;font-weight: bold"
>
{{item.SurplusNum}}人
</span></div>
</div>
<div
class=
"d7"
>
<q-btn
color=
"primary"
label=
"立即下单"
v-if=
"item.IsCanApply==1"
@
click=
"placeAnorder(item)"
/>
<div
v-if=
"item.IsCanApply==0"
>
<img
src=
"../../assets/images/administration/bmym.png"
alt=
""
style=
"width: 64px;height: 62px;margin-right: 15px"
v-if=
"item.SurplusNum==0"
>
<img
src=
"../../assets/images/administration/guoqi.png"
alt=
""
style=
"width: 64px;height: 62px"
v-if=
"getEXPDate(item.EndOrderTime)==true"
>
<div>
时间
</div>
</div>
<div
style=
"font-size: 12px;color: #2D2D2D;font-weight: bold;height: 40px;width: 454px;line-height: 40px;display: flex;border-bottom: 1px solid rgba(138, 138, 138, 0.09);"
v-for=
"(zx,zi) in item.ClassTimeList"
:key=
"zi"
>
<div
style=
"width: 50%;padding-left: 20px"
>
第{{zi+1}}节
</div>
<div>
{{zx.StartTime}}-{{zx.EndTime}}
</div>
</div>
</div>
</div>
<div
class=
"d6 row"
>
<p
style=
"color:#f5576c;font-weight: bold"
><span
style=
"color:#2D2D2D;"
>
OP备注:
</span>
{{item.OutRemark}}
</p>
<div
class=
"progress"
>
<q-linear-progress
size=
"5px"
color=
"#3FC4FF"
:value=
"(item.OrderStudentCount/item.ClassPersion)"
rounded
/>
</div>
</q-banner>
</q-popup-proxy>
</div>
</div>
<div
class=
"d3"
>
<div
style=
"margin: 0"
>
招生信息
</div>
<div><span
class=
"d2-n"
>
开始上课时间
</span><span
class=
"d3-s"
>
{{item.OpenTime}}
</span></div>
<div><span
class=
"d2-n"
>
截止报名时间
</span><span
class=
"d3-s"
>
{{item.EndOrderTime}}
</span></div>
</div>
<div
class=
"d4"
>
<div
style=
"margin: 0"
>
价格信息
</div>
<div><span
class=
"d2-n"
>
原价
</span><span>
{{item.OriginalPrice.toFixed(2)}}
</span></div>
<div><span
class=
"d2-n"
>
售价
</span><span
style=
"color:#f5576c;font-weight: bold"
>
{{item.SellPrice.toFixed(2)}}
</span></div>
<div
v-if=
"item.IsStepPrice==1 && item.ClassStepPriceList.length>0"
style=
"cursor: pointer"
>
更多优惠价格
<span
class=
"iconfont icon-xiangxia"
style=
"color: #2961FE;font-size: 10px"
></span>
<q-popup-proxy>
<q-banner>
<div
class=
"price-popup"
>
<div
class=
"price-popup-item"
v-for=
"(x,index2) in item.ClassStepPriceList"
:key=
"index2"
style=
"margin: 5px 0"
>
<span
style=
"color: #2D2D2D;font-weight: bold"
>
{{x.PersionNum}}人报名
<span
style=
"color:#2860FB;margin-left: 15px"
>
{{x.PersionPrice.toFixed(2)}}
</span></span>
</div>
</div>
</li>
<li
style=
"border: none;display: flex;justify-content: flex-end;background: white;padding: 5px 20px"
>
<q-pagination
v-model=
"msg.pageIndex"
:max=
"pageCount"
@
input=
"changePage"
class=
"full-width justify-end"
color=
"primary"
:input=
"true"
>
</q-pagination>
</li>
</ul>
<div
v-else
style=
"width: 100%;color: #999999;text-align: center;font-size: 15px"
>
暂无数据
</div>
</div>
<q-dialog
v-model=
"dialog"
maximized
full-height
seamless
position=
"right"
>
<q-card
style=
"margin-top:61px;width:500px"
class=
"no-border-radius classinfo_Dialog"
>
<div
class=
"drawerTop"
>
<div
style=
"display:flex;align-items:center;margin-left:10px;"
>
<span
class=
"drawer_Span"
>
学员报名
</span>
</div>
</div>
</q-banner>
</q-popup-proxy>
</div>
<div
style=
"padding:20px 15px;"
>
<q-input
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"enrollMsg.GuestNum"
type=
"number"
@
input=
"peopleNumber"
class=
"col-12"
label=
"人数"
:rules=
"[val => !!val || '请填写人数']"
/>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"enrollMsg.Unit_Price"
:disable=
"UPrice==true?false:true"
@
blur=
"priceNumber"
class=
"col-12"
label=
"成交单价"
:rules=
"[val => !!val || '请填成交单价']"
/>
<q-toggle
v-model=
"UPrice"
label=
"高于定价收生"
class=
"q-mb-md"
@
change=
"resetSearch"
/>
<q-select
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
v-model=
"enrollMsg.OrderSource"
:options=
"SourceEnumList"
emit-value
map-options
label=
"客人来源"
/>
<q-input
filled
stack-label
type=
"textarea"
:dense=
"false"
v-model=
"enrollMsg.SaleRemark"
style=
"margin-top: 20px"
class=
"col-12"
label=
"备注"
/>
<div
style=
"margin:30px 10px 0 0;"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"dialog=false"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"保存"
@
click=
"saveSatMsg()"
/>
</div>
</div>
<div
class=
"d5"
>
<div
style=
"margin: 0"
>
名额信息
</div>
<div><span
class=
"d2-n"
>
计划招生人数
</span><span>
{{item.ClassPersion}}人
</span></div>
<div><span
class=
"d2-n"
>
剩余招生名额
</span><span
style=
"color:#f5576c;font-weight: bold"
>
{{item.SurplusNum}}人
</span></div>
</div>
<div
class=
"d7"
>
<q-btn
color=
"primary"
label=
"立即下单"
v-if=
"item.IsCanApply==1"
@
click=
"placeAnorder(item)"
/>
<div
v-if=
"item.IsCanApply==0"
>
<img
src=
"../../assets/images/administration/bmym.png"
alt=
""
style=
"width: 64px;height: 62px;margin-right: 15px"
v-if=
"item.SurplusNum==0"
>
<img
src=
"../../assets/images/administration/guoqi.png"
alt=
""
style=
"width: 64px;height: 62px"
v-if=
"getEXPDate(item.EndOrderTime)==true"
>
</div>
</q-card>
<div
class=
"dialog-out-close"
@
click=
"dialog=false"
style=
"height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;"
>
<q-icon
name=
"iconfont icon-jujue1"
size=
"26px"
/>
</div>
</div>
<div
class=
"d6 row"
>
<p
style=
"color:#f5576c;font-weight: bold"
><span
style=
"color:#2D2D2D;"
>
OP备注:
</span>
{{item.OutRemark}}
</p>
<div
class=
"progress"
>
<q-linear-progress
size=
"5px"
color=
"#3FC4FF"
:value=
"(item.OrderStudentCount/item.ClassPersion)"
rounded
/>
</div>
</div>
</q-dialog>
</li>
<li
style=
"border: none;display: flex;justify-content: flex-end;background: white;padding: 5px 20px"
>
<q-pagination
v-model=
"msg.pageIndex"
:max=
"pageCount"
@
input=
"changePage"
class=
"full-width justify-end"
color=
"primary"
:input=
"true"
>
</q-pagination>
</li>
</ul>
<div
v-else
style=
"width: 100%;color: #999999;text-align: center;font-size: 15px"
>
暂无数据
</div>
</div>
<q-dialog
v-model=
"dialog"
maximized
full-height
seamless
position=
"right"
>
<q-card
style=
"margin-top:61px;width:500px"
class=
"no-border-radius classinfo_Dialog"
>
<div
class=
"drawerTop"
>
<div
style=
"display:flex;align-items:center;margin-left:10px;"
>
<span
class=
"drawer_Span"
>
学员报名
</span>
</div>
</div>
<div
style=
"padding:20px 15px;"
>
<q-input
filled
stack-label
maxlength=
"4"
:dense=
"false"
v-model=
"enrollMsg.GuestNum"
type=
"number"
@
input=
"peopleNumber"
class=
"col-12"
label=
"人数"
:rules=
"[val => !!val || '请填写人数']"
/>
<q-input
filled
stack-label
:dense=
"false"
maxlength=
"8"
v-model=
"enrollMsg.Unit_Price"
:disable=
"UPrice==true?false:true"
@
blur=
"priceNumber"
class=
"col-12"
label=
"成交单价"
:rules=
"[val => !!val || '请填成交单价']"
/>
<q-toggle
v-model=
"UPrice"
label=
"高于定价收生"
class=
"q-mb-md"
@
change=
"resetSearch"
/>
<q-select
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
v-model=
"enrollMsg.OrderSource"
:options=
"SourceEnumList"
emit-value
map-options
label=
"客人来源"
/>
<q-input
filled
stack-label
type=
"textarea"
maxlength=
"500"
:dense=
"false"
v-model=
"enrollMsg.SaleRemark"
style=
"margin-top: 20px"
class=
"col-12"
label=
"备注"
/>
<div
style=
"margin:30px 10px 0 0;"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"dialog=false"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"保存"
@
click=
"saveSatMsg()"
/>
</div>
</div>
</q-card>
<div
class=
"dialog-out-close"
@
click=
"dialog=false"
style=
"height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;"
>
<q-icon
name=
"iconfont icon-jujue1"
size=
"26px"
/>
</div>
</q-dialog>
</div>
</div>
</div>
</template>
<
script
>
import
{
import
{
getClassPruductList
,
//获取日语培训列表
getOrderSourceEnumList
,
//获取订单来源 枚举
setClassOrder
,
//新增 修改订单
}
from
'../../api/sale/sale'
;
import
{
}
from
'../../api/sale/sale'
;
import
{
getSchoolDropdown
,
//获取校区列表
getTeacherDropDownList
,
}
from
'../../api/school/index'
;
import
{
}
from
'../../api/school/index'
;
import
{
queryCourseDropdownList
,
}
from
'../../api/course/index'
export
default
{
components
:
{
},
}
from
'../../api/course/index'
export
default
{
components
:
{},
data
()
{
return
{
dialog
:
false
,
data
:
[],
loading
:
false
,
dateList
:
[],
//开学时间
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
ClassName
:
''
,
//班级名称
StartTime
:
''
,
//开始时间
EndTime
:
''
,
//结束时间
School_Id
:
0
,
//关联校区
CouseId
:
0
,
//课程id
Teacher_Id
:
0
,
//教师id
Q_CanApply
:
"0"
,
//是否可以报名 1是
},
enrollMsg
:
{
ClassId
:
0
,
GuestNum
:
1
,
Unit_Price
:
0
,
//成交单价
PreferPrice
:
0
,
//应收总额
OrderSource
:
0
,
//客人来源 枚举
SaleRemark
:
''
,
//备注
},
//关联校区列表
schoolList
:
[],
pageCount
:
0
,
selectitem
:
{},
UPrice
:
false
,
UnitPrice
:
0
,
//用于可以输入单价的验证
SourceEnumList
:
[],
ClassList
:
[],
//关联课程下拉数据
TeacherList
:
[],
//关联教师下拉数据
elvalue
:
new
Date
(),
}
return
{
dialog
:
false
,
data
:
[],
loading
:
false
,
dateList
:
[],
//开学时间
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
ClassName
:
''
,
//班级名称
StartTime
:
''
,
//开始时间
EndTime
:
''
,
//结束时间
School_Id
:
0
,
//关联校区
CouseId
:
0
,
//课程id
Teacher_Id
:
0
,
//教师id
Q_CanApply
:
"0"
,
//是否可以报名 1是
},
enrollMsg
:
{
ClassId
:
0
,
GuestNum
:
1
,
Unit_Price
:
0
,
//成交单价
PreferPrice
:
0
,
//应收总额
OrderSource
:
0
,
//客人来源 枚举
SaleRemark
:
''
,
//备注
},
//关联校区列表
schoolList
:
[],
pageCount
:
0
,
selectitem
:
{},
UPrice
:
false
,
UnitPrice
:
0
,
//用于可以输入单价的验证
SourceEnumList
:
[],
ClassList
:
[],
//关联课程下拉数据
TeacherList
:
[],
//关联教师下拉数据
elvalue
:
new
Date
(),
}
},
created
()
{
this
.
getSchool
();
this
.
getOrderSEList
()
this
.
CourseList
();
this
.
GetTeacherList
();
this
.
getSchool
();
this
.
getOrderSEList
()
this
.
CourseList
();
this
.
GetTeacherList
();
},
mounted
()
{
let
nowDay
=
new
Date
();
var
year
=
nowDay
.
getFullYear
();
//年
var
month
=
nowDay
.
getMonth
()
+
1
;
//月
var
day
=
nowDay
.
getDate
();
//日
this
.
dateList
[
0
]
=
year
+
'-'
+
month
+
'-'
+
day
;
this
.
getList
();
let
nowDay
=
new
Date
();
var
year
=
nowDay
.
getFullYear
();
//年
var
month
=
nowDay
.
getMonth
()
+
1
;
//月
var
day
=
nowDay
.
getDate
();
//日
this
.
dateList
[
0
]
=
year
+
'-'
+
month
+
'-'
+
day
;
this
.
getList
();
},
methods
:
{
//获取校区列表
getSchool
()
{
getSchoolDropdown
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
var
tempArray
=
res
.
Data
;
if
(
!
tempArray
)
{
tempArray
=
[];
}
tempArray
.
unshift
({
SId
:
0
,
SName
:
"不限"
})
this
.
schoolList
=
tempArray
;
}
})
},
getOrderSEList
()
{
getOrderSourceEnumList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
var
tempArray
=
res
.
Data
;
this
.
SourceEnumList
=
tempArray
;
this
.
enrollMsg
.
OrderSource
=
tempArray
[
0
].
Id
;
}
})
},
getEXPDate
(
time
)
{
//判断是否过期
var
str
=
time
.
replace
(
/年/g
,
"/"
).
replace
(
/月/g
,
"/"
).
replace
(
/日/g
,
""
);
var
date
=
new
Date
(
str
).
getTime
();
var
now
=
new
Date
().
getTime
()
+
86400
;
if
(
date
<
now
)
{
return
true
//过期
}
else
{
return
false
//没过期
//获取校区列表
getSchool
()
{
getSchoolDropdown
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
var
tempArray
=
res
.
Data
;
if
(
!
tempArray
)
{
tempArray
=
[];
}
},
//获取课程
CourseList
()
{
queryCourseDropdownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
ClassList
=
res
.
Data
;
this
.
ClassList
.
unshift
({
CourseId
:
0
,
CourseName
:
"不限"
})
}
tempArray
.
unshift
({
SId
:
0
,
SName
:
"不限"
})
},
//获取教师下拉
GetTeacherList
()
{
getTeacherDropDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
this
.
TeacherList
.
unshift
({
TId
:
0
,
TeacherName
:
"不限"
})
}
this
.
schoolList
=
tempArray
;
}
})
},
getOrderSEList
()
{
getOrderSourceEnumList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
var
tempArray
=
res
.
Data
;
this
.
SourceEnumList
=
tempArray
;
this
.
enrollMsg
.
OrderSource
=
tempArray
[
0
].
Id
;
}
})
},
getEXPDate
(
time
)
{
//判断是否过期
var
str
=
time
.
replace
(
/年/g
,
"/"
).
replace
(
/月/g
,
"/"
).
replace
(
/日/g
,
""
);
var
date
=
new
Date
(
str
).
getTime
();
var
now
=
new
Date
().
getTime
()
+
86400
;
if
(
date
<
now
)
{
return
true
//过期
}
else
{
return
false
//没过期
}
},
//获取课程
CourseList
()
{
queryCourseDropdownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
ClassList
=
res
.
Data
;
this
.
ClassList
.
unshift
({
CourseId
:
0
,
CourseName
:
"不限"
})
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
()
},
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
()
},
//获取菜单分页列表
getList
()
{
if
(
this
.
dateList
&&
this
.
dateList
.
length
>
0
)
{
this
.
msg
.
StartTime
=
this
.
dateList
[
0
];
this
.
msg
.
EndTime
=
this
.
dateList
[
1
];
}
else
{
this
.
msg
.
StartTime
=
''
;
this
.
msg
.
EndTime
=
''
;
}
this
.
loading
=
true
;
getClassPruductList
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
this
.
data
=
res
.
Data
.
PageData
this
.
pageCount
=
res
.
Data
.
PageCount
;
this
.
data
.
forEach
(
x
=>
{
if
(
x
.
ClassStyle
==
1
)
{
let
weekList
=
[
//定义一个数组
{
id
:
7
,
select
:
false
},
{
id
:
1
,
select
:
false
},
{
id
:
2
,
select
:
false
},
{
id
:
3
,
select
:
false
},
{
id
:
4
,
select
:
false
},
{
id
:
5
,
select
:
false
},
{
id
:
6
,
select
:
false
},
];
weekList
.
forEach
(
j
=>
{
x
.
ClassPlanList
.
forEach
(
z
=>
{
if
(
j
.
id
==
z
.
WeekDay
)
{
j
.
select
=
true
}
})
})
x
.
weeks
=
weekList
}
else
if
(
x
.
ClassStyle
==
2
)
{
let
data
=
[];
for
(
let
i
=
0
;
i
<
31
;
i
++
)
{
let
obj
=
{
name
:
i
+
1
,
select
:
false
};
x
.
ClassPlanList
.
forEach
(
j
=>
{
if
(
j
.
WeekDay
==
i
+
1
)
{
obj
.
select
=
true
}
})
data
.
push
(
obj
)
}
x
.
month
=
data
;
}
})
}).
catch
(()
=>
{
this
.
loading
=
false
}
})
},
//获取教师下拉
GetTeacherList
()
{
getTeacherDropDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
this
.
TeacherList
.
unshift
({
TId
:
0
,
TeacherName
:
"不限"
})
},
getSortFun
(
order
,
sortBy
)
{
var
ordAlpah
=
(
order
==
'asc'
)
?
'>'
:
'<'
;
var
sortFun
=
new
Function
(
'a'
,
'b'
,
'return a.'
+
sortBy
+
ordAlpah
+
'b.'
+
sortBy
+
'?1:-1'
);
return
sortFun
;
},
countPrice
(
num
)
{
let
array
=
[];
if
(
this
.
selectitem
.
ClassStepPriceList
&&
this
.
selectitem
.
ClassStepPriceList
.
length
)
{
this
.
selectitem
.
ClassStepPriceList
.
forEach
(
x
=>
{
let
obj
=
{
PersionNum
:
x
.
PersionNum
,
PersionPrice
:
x
.
PersionPrice
,
}
array
.
push
(
obj
)
}
})
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
()
},
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
()
},
//获取菜单分页列表
getList
()
{
if
(
this
.
dateList
&&
this
.
dateList
.
length
>
0
)
{
this
.
msg
.
StartTime
=
this
.
dateList
[
0
];
this
.
msg
.
EndTime
=
this
.
dateList
[
1
];
}
else
{
this
.
msg
.
StartTime
=
''
;
this
.
msg
.
EndTime
=
''
;
}
this
.
loading
=
true
;
getClassPruductList
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
this
.
data
=
res
.
Data
.
PageData
this
.
pageCount
=
res
.
Data
.
PageCount
;
this
.
data
.
forEach
(
x
=>
{
if
(
x
.
ClassStyle
==
1
)
{
let
weekList
=
[
//定义一个数组
{
id
:
7
,
select
:
false
},
{
id
:
1
,
select
:
false
},
{
id
:
2
,
select
:
false
},
{
id
:
3
,
select
:
false
},
{
id
:
4
,
select
:
false
},
{
id
:
5
,
select
:
false
},
{
id
:
6
,
select
:
false
},
];
weekList
.
forEach
(
j
=>
{
x
.
ClassPlanList
.
forEach
(
z
=>
{
if
(
j
.
id
==
z
.
WeekDay
)
{
j
.
select
=
true
}
})
let
fz
=
false
let
a
=
0
;
array
.
forEach
(
x
=>
{
if
(
x
.
PersionNum
==
num
)
{
fz
=
true
;
a
=
x
.
PersionPrice
}
})
x
.
weeks
=
weekList
}
else
if
(
x
.
ClassStyle
==
2
)
{
let
data
=
[];
for
(
let
i
=
0
;
i
<
31
;
i
++
)
{
let
obj
=
{
name
:
i
+
1
,
select
:
false
};
x
.
ClassPlanList
.
forEach
(
j
=>
{
if
(
j
.
WeekDay
==
i
+
1
)
{
obj
.
select
=
true
}
})
if
(
fz
==
false
)
{
array
.
push
({
PersionNum
:
num
})
array
.
sort
(
this
.
getSortFun
(
'asc'
,
'PersionNum'
));
//升序排序
var
idx
;
for
(
var
i
=
0
;
i
<
array
.
length
;
i
++
)
{
if
(
array
[
i
].
PersionNum
==
num
)
{
idx
=
i
;
}
}
idx
=
Math
.
max
(
0
,
idx
-
1
);
if
(
array
[
idx
].
PersionPrice
)
{
return
array
[
idx
].
PersionPrice
}
else
{
return
this
.
selectitem
.
SellPrice
}
}
else
{
return
a
}
}
else
{
return
this
.
selectitem
.
SellPrice
data
.
push
(
obj
)
}
x
.
month
=
data
;
}
},
placeAnorder
(
item
)
{
this
.
selectitem
=
item
;
this
.
dialog
=
true
;
this
.
enrollMsg
.
ClassId
=
item
.
ClassId
;
this
.
enrollMsg
.
SaleRemark
=
''
;
//清空备注
this
.
enrollMsg
.
Unit_Price
=
this
.
countPrice
(
this
.
enrollMsg
.
GuestNum
)
this
.
UnitPrice
=
this
.
enrollMsg
.
Unit_Price
},
peopleNumber
(
val
)
{
if
(
val
>
this
.
selectitem
.
SurplusNum
)
{
this
.
enrollMsg
.
GuestNum
=
this
.
selectitem
.
SurplusNum
})
}).
catch
(()
=>
{
this
.
loading
=
false
})
},
getSortFun
(
order
,
sortBy
)
{
var
ordAlpah
=
(
order
==
'asc'
)
?
'>'
:
'<'
;
var
sortFun
=
new
Function
(
'a'
,
'b'
,
'return a.'
+
sortBy
+
ordAlpah
+
'b.'
+
sortBy
+
'?1:-1'
);
return
sortFun
;
},
countPrice
(
num
)
{
let
array
=
[];
if
(
this
.
selectitem
.
ClassStepPriceList
&&
this
.
selectitem
.
ClassStepPriceList
.
length
)
{
this
.
selectitem
.
ClassStepPriceList
.
forEach
(
x
=>
{
let
obj
=
{
PersionNum
:
x
.
PersionNum
,
PersionPrice
:
x
.
PersionPrice
,
}
if
(
val
==
''
)
{
this
.
enrollMsg
.
GuestNum
=
1
array
.
push
(
obj
)
})
let
fz
=
false
let
a
=
0
;
array
.
forEach
(
x
=>
{
if
(
x
.
PersionNum
==
num
)
{
fz
=
true
;
a
=
x
.
PersionPrice
}
this
.
enrollMsg
.
Unit_Price
=
this
.
countPrice
(
this
.
enrollMsg
.
GuestNum
)
this
.
UnitPrice
=
this
.
enrollMsg
.
Unit_Price
},
priceNumber
(
val
)
{
//大于的时候赋值
if
(
this
.
enrollMsg
.
Unit_Price
<
this
.
UnitPrice
)
{
this
.
enrollMsg
.
Unit_Price
=
this
.
UnitPrice
}
},
saveSatMsg
()
{
//立即报名
this
.
enrollMsg
.
PreferPrice
=
this
.
enrollMsg
.
GuestNum
*
this
.
enrollMsg
.
Unit_Price
setClassOrder
(
this
.
enrollMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'报名成功!'
,
position
:
'top'
})
this
.
getList
()
this
.
dialog
=
false
;
this
.
enrollMsg
=
{
//清空数据
ClassId
:
0
,
GuestNum
:
1
,
Unit_Price
:
0
,
//成交单价
PreferPrice
:
0
,
//应收总额
OrderSource
:
0
,
//客人来源 枚举
SaleRemark
:
''
,
//备注
}
}
}).
catch
(()
=>
{
})
if
(
fz
==
false
)
{
array
.
push
({
PersionNum
:
num
})
array
.
sort
(
this
.
getSortFun
(
'asc'
,
'PersionNum'
));
//升序排序
var
idx
;
for
(
var
i
=
0
;
i
<
array
.
length
;
i
++
)
{
if
(
array
[
i
].
PersionNum
==
num
)
{
idx
=
i
;
}
}
idx
=
Math
.
max
(
0
,
idx
-
1
);
if
(
array
[
idx
].
PersionPrice
)
{
return
array
[
idx
].
PersionPrice
}
else
{
return
this
.
selectitem
.
SellPrice
}
}
else
{
return
a
}
}
else
{
return
this
.
selectitem
.
SellPrice
}
},
placeAnorder
(
item
)
{
this
.
selectitem
=
item
;
this
.
dialog
=
true
;
this
.
enrollMsg
.
ClassId
=
item
.
ClassId
;
this
.
enrollMsg
.
SaleRemark
=
''
;
//清空备注
this
.
enrollMsg
.
Unit_Price
=
this
.
countPrice
(
this
.
enrollMsg
.
GuestNum
)
this
.
UnitPrice
=
this
.
enrollMsg
.
Unit_Price
},
peopleNumber
(
val
)
{
if
(
val
>
this
.
selectitem
.
SurplusNum
)
{
this
.
enrollMsg
.
GuestNum
=
this
.
selectitem
.
SurplusNum
}
if
(
val
==
''
)
{
this
.
enrollMsg
.
GuestNum
=
1
}
this
.
enrollMsg
.
Unit_Price
=
this
.
countPrice
(
this
.
enrollMsg
.
GuestNum
)
this
.
UnitPrice
=
this
.
enrollMsg
.
Unit_Price
},
priceNumber
(
val
)
{
//大于的时候赋值
if
(
this
.
enrollMsg
.
Unit_Price
<
this
.
UnitPrice
)
{
this
.
enrollMsg
.
Unit_Price
=
this
.
UnitPrice
}
},
saveSatMsg
()
{
//立即报名
this
.
enrollMsg
.
PreferPrice
=
this
.
enrollMsg
.
GuestNum
*
this
.
enrollMsg
.
Unit_Price
setClassOrder
(
this
.
enrollMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'报名成功!'
,
position
:
'top'
})
this
.
getList
()
this
.
dialog
=
false
;
this
.
enrollMsg
=
{
//清空数据
ClassId
:
0
,
GuestNum
:
1
,
Unit_Price
:
0
,
//成交单价
PreferPrice
:
0
,
//应收总额
OrderSource
:
0
,
//客人来源 枚举
SaleRemark
:
''
,
//备注
}
}
}).
catch
(()
=>
{
})
}
}
}
}
</
script
>
<
style
>
li
{
li
{
list-style-type
:
none
;
}
}
.japaneseTrain
ul
{
.japaneseTrain
ul
{
padding
:
0px
}
}
.japaneseTrain
li
{
.japaneseTrain
li
{
background
:
rgba
(
221
,
222
,
224
,
0.2
);
border-radius
:
4px
;
margin-top
:
15px
}
}
.japaneseTrain
li
.dline
{
.japaneseTrain
li
.dline
{
display
:
table
;
width
:
100%
;
display
:
flex
;
flex-direction
:
row
}
}
.japaneseTrain
li
.d1
,
.japaneseTrain
li
.d2
,
.japaneseTrain
li
.d3
,
.japaneseTrain
li
.d4
,
.japaneseTrain
li
.d5
{
.japaneseTrain
li
.d1
,
.japaneseTrain
li
.d2
,
.japaneseTrain
li
.d3
,
.japaneseTrain
li
.d4
,
.japaneseTrain
li
.d5
{
width
:
18%
;
padding
:
20px
20px
10px
;
}
}
.japaneseTrain
li
.d7
{
.japaneseTrain
li
.d7
{
flex
:
1
;
width
:
1px
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
justify-content
:
center
}
}
.japaneseTrain
li
.d1
.di-title
{
.japaneseTrain
li
.d1
.di-title
{
font-size
:
16px
;
color
:
#111111
;
}
}
.japaneseTrain
li
.d1
.di-c
{
.japaneseTrain
li
.d1
.di-c
{
font-size
:
14px
;
display
:
flex
;
align-items
:
center
;
line-height
:
28px
;
color
:
#111111
}
}
.japaneseTrain
li
.d6
{
.japaneseTrain
li
.d6
{
padding
:
10px
20px
;
width
:
100%
;
height
:
inherit
;
position
:
relative
;
border-top
:
1px
solid
#DDDEE0
}
}
.japaneseTrain
li
.d6
.progress
{
.japaneseTrain
li
.d6
.progress
{
width
:
100%
;
height
:
5px
;
position
:
absolute
;
left
:
0
;
bottom
:
0
}
}
.japaneseTrain
li
.d2
div
{
.japaneseTrain
li
.d2
div
{
margin
:
10px
0
;
font-size
:
14px
;
color
:
#111111
;
}
}
.japaneseTrain
li
.d2-n
{
.japaneseTrain
li
.d2-n
{
font-size
:
12px
;
color
:
#999999
;
margin-right
:
20px
}
}
.japaneseTrain
li
.d3
.d3-s
{
.japaneseTrain
li
.d3
.d3-s
{
color
:
#f5576c
;
font-weight
:
bold
}
}
.japaneseTrain
li
.d3
div
{
.japaneseTrain
li
.d3
div
{
margin
:
10px
0
;
font-size
:
14px
;
}
}
.japaneseTrain
li
.d4
div
{
.japaneseTrain
li
.d4
div
{
font-size
:
14px
;
color
:
#111111
;
margin
:
10px
0
;
}
}
.japaneseTrain
li
.d5
div
{
.japaneseTrain
li
.d5
div
{
font-size
:
14px
;
color
:
#111111
;
margin
:
10px
0
;
}
}
.japaneseTrain
.price-popup
{
.japaneseTrain
.price-popup
{
border-radius
:
4px
;
}
}
.japaneseTrain
.el-range-editor
.el-range-input
{
.japaneseTrain
.el-range-editor
.el-range-input
{
background
:
none
;
}
}
.japaneseTrain
.el-range-editor.el-input__inner
{
.japaneseTrain
.el-range-editor.el-input__inner
{
background-color
:
transparent
;
}
}
.japaneseTrain
.q-mb-md
{
.japaneseTrain
.q-mb-md
{
margin-bottom
:
0
;
}
}
.japaneseTrain
.month-item
{
.japaneseTrain
.month-item
{
display
:
inline-block
;
width
:
45.5px
;
height
:
45.4px
;
...
...
@@ -639,9 +654,10 @@ li {
text-align
:
center
;
font-size
:
12px
;
color
:
#2D2D2D
;
}
}
.price-popup
.el-calendar-table
.el-calendar-day
{
.price-popup
.el-calendar-table
.el-calendar-day
{
height
:
60px
;
}
}
</
style
>
src/pages/system/dept.vue
View file @
4aec8121
...
...
@@ -9,7 +9,7 @@
</div>
<div
class=
"col"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.DeptName"
label=
"部门名称"
/>
label=
"部门名称"
maxlength=
"20"
/>
</div>
<div
class=
"col"
>
<q-select
@
input=
"resetSearch"
filled
stack-label
option-value=
"value"
option-label=
"label"
...
...
src/pages/system/menu.vue
View file @
4aec8121
...
...
@@ -4,11 +4,11 @@
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
class=
"col-6 q-pr-lg q-pr-lg"
v-model=
"msg.MenuName"
label=
"菜单名称"
/>
label=
"菜单名称"
maxlength=
"20"
@
clear=
"resetSearch"
/>
</div>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
class=
"col-6 q-pr-lg q-pr-lg"
v-model=
"msg.MenuUrl"
label=
"菜单地址"
/>
label=
"菜单地址"
maxlength=
"20"
@
clear=
"resetSearch"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
v-model=
"msg.MenuType"
class=
"col-6 q-pr-lg q-pr-lg"
:options=
"MenuTypeOpts"
...
...
@@ -59,7 +59,6 @@
</div>
</div>
</template>
<
script
>
import
{
getMenuPage
,
...
...
src/pages/system/post.vue
View file @
4aec8121
...
...
@@ -4,14 +4,13 @@
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.PostName"
label=
"岗位名称"
/>
label=
"岗位名称"
maxlength=
"20"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
v-model=
"msg.Status"
:options=
"ShowOpts"
emit-value
map-options
label=
"状态"
/>
</div>
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table"
...
...
src/pages/system/role.vue
View file @
4aec8121
...
...
@@ -4,14 +4,13 @@
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.RoleName"
label=
"角色名称"
/>
label=
"角色名称"
maxlength=
"20"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
v-model=
"msg.Status"
:options=
"ShowOpts"
emit-value
map-options
label=
"状态"
/>
</div>
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table"
...
...
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