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
25ba5fae
Commit
25ba5fae
authored
Dec 14, 2021
by
罗超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
f14d8b37
713e2985
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
289 additions
and
205 deletions
+289
-205
sale.js
src/api/sale/sale.js
+19
-0
student-Assit.vue
src/components/school/student/student-Assit.vue
+104
-95
student-genjin.vue
src/components/school/student/student-genjin.vue
+9
-0
student-left.vue
src/components/school/student/student-left.vue
+49
-42
student-shiting.vue
src/components/school/student/student-shiting.vue
+19
-15
student-visit.vue
src/components/school/student/student-visit.vue
+58
-26
student-yuefang.vue
src/components/school/student/student-yuefang.vue
+29
-25
studentRight-form.vue
src/components/school/student/studentRight-form.vue
+2
-2
No files found.
src/api/sale/sale.js
View file @
25ba5fae
...
@@ -421,4 +421,23 @@ export function GetStudentAssistList(data) {
...
@@ -421,4 +421,23 @@ export function GetStudentAssistList(data) {
});
});
}
}
// 保存协助数据
export
function
SetStudentAssist
(
data
)
{
return
request
({
url
:
'/CustomerStudent/SetStudentAssist'
,
method
:
'post'
,
data
});
}
// 删除协助数据
export
function
RemoveStudentAssist
(
data
)
{
return
request
({
url
:
'/CustomerStudent/RemoveStudentAssist'
,
method
:
'post'
,
data
});
}
src/components/school/student/student-Assit.vue
View file @
25ba5fae
<
style
>
<
style
>
.delAssist
{
.delAssist
{
position
:
absolute
;
position
:
absolute
;
right
:
0
;
right
:
-16px
;
top
:
28
px
;
top
:
-12
px
;
display
:
inline-block
;
display
:
inline-block
;
background
:
red
;
background
:
red
;
border-radius
:
50%
;
border-radius
:
50%
;
...
@@ -14,85 +14,68 @@
...
@@ -14,85 +14,68 @@
cursor
:
pointer
;
cursor
:
pointer
;
}
}
.studentAssitTable
{
width
:
100%
;
text-align
:
center
;
}
.studentAssitTable
td
{
height
:
40px
;
line-height
:
40px
;
border
:
1px
solid
#f2f2f2
;
}
.studentAssitTable
th
{
height
:
40px
;
background-color
:
#f2f2f2
;
}
</
style
>
</
style
>
<
template
>
<
template
>
<div>
<div>
<div
class=
"row wrap"
style=
"flex-direction:row-reverse"
>
<q-btn
label=
"新增"
color=
"accent q-mb-lg"
size=
"sm"
@
click=
"isShowAdd=true"
/>
<q-btn
label=
"新增"
color=
"accent q-mb-lg"
@
click=
"addAssist"
size=
"sm"
/>
<q-btn
label=
"取消"
style=
"margin-left:20px;"
v-if=
"isShowAdd"
flat
color=
"grey-10 q-mb-lg"
size=
"sm"
</div>
@
click=
"isShowAdd=false"
/>
<template
v-if=
"AssitMsg.AssistList.length>0"
>
<template
v-if=
"isShowAdd"
>
<div
class=
"row wrap"
v-for=
"(item,index) in AssitMsg.AssistList"
:key=
"index"
>
<div
class=
"row wrap"
>
<q-select
filled
stack-label
option-label=
"Name"
v-model=
"item.AssistType"
option-value=
"Id"
<q-select
filled
stack-label
option-label=
"Name"
v-model=
"AssitMsg.AssistType"
option-value=
"Id"
:options=
"AssistDropList"
label=
"角色"
dense
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
:options=
"AssistDropList"
label=
"角色"
dense
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
map-options
/>
<q-select
filled
dense
v-model=
"AssitMsg.AssistId"
@
filter=
"filterEmployee"
use-input
:options=
"myEmployeeList"
<q-select
filled
dense
v-model=
"item.AssistId"
@
filter=
"filterEmployee"
use-input
option-label=
"EmployeeName"
class=
"col-6 q-pb-lg"
option-value=
"Id"
emit-value
map-options
/>
:options=
"myEmployeeList"
option-label=
"EmployeeName"
class=
"col-6 q-pb-lg"
option-value=
"Id"
emit-value
map-options
/>
<i
class=
"iconfont icon-close delAssist"
></i>
<i
class=
"iconfont icon-close delAssist"
@
click=
"delAssist(index)"
></i>
</div>
</div>
<div
class=
"row wrap"
style=
"margin-bottom:10px;float:right;"
>
<div
class=
"row wrap"
style=
"margin-bottom:10px;float:right;"
>
<q-btn
label=
"保存"
color=
"accent q-mb-lg"
size=
"md"
@
click=
"saveAssit()"
/>
<q-btn
label=
"保存"
color=
"accent q-mb-lg"
size=
"md"
@
click=
"saveAssit()"
/>
</div>
</div>
</
template
>
</
template
>
<!-- <div style="display:flex;flex:1;flex-direction: column;overflow:hidden;">
<div
v-if=
"dataList.length>0"
>
<div class="TimeLineDiv">
<table
class=
"studentAssitTable"
style=
"border:1px solid #f2f2f2;border-collapse:collapse;"
cellspacing=
"0"
<q-timeline color="primary">
cellpadding=
"0"
>
<q-timeline-entry v-for="(tItem,tIndex) in dataList" :key="tIndex">
<tr>
<template v-slot:title>
<th
style=
"width:180px;"
>
角色
</th>
<div class="visit_Cont">
<th
style=
"width:180px;"
>
人员
</th>
<div class="Log_Content">
<th>
操作
</th>
<div>约访时间:{{tItem.AppointmentTime}}</div>
</tr>
<div>约访地点:{{tItem.AppointmentPoint}}</div>
<tr
v-for=
"(item,index) in dataList"
:key=
"index"
>
<div class="StuCom_Remark">
<td>
{{item.AssistTypeName}}
</td>
<div class="StuCom_Left">备注</div>:
<td>
{{item.AssistName}}
</td>
<div class="StuCom_Inner">{{tItem.Remark}}</div>
<td>
</div>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"修改"
<div class="StuCom_Remark">
@
click=
"getEditInfo(item)"
></q-btn>
<div class="StuCom_Left">反馈</div>:
<q-btn
flat
size=
"xs"
icon=
"delete"
color=
"negative"
style=
"font-weight:400"
label=
"删除"
<div class="StuCom_Inner">{{tItem.Feedback}} </div>
@
click=
"deleteAssits(item.Id)"
/>
</div>
</td>
</div>
</tr>
<div style="display:flex;margin-top:10px;">
</table>
<div @click="delVisit(tItem.Id)" class="visit_delete text-negative">删除</div>
<div @click="clickItem(tItem)" class="stu_ComFeed">
{{tItem.Feedback==null||tItem.Feedback==''?'添加反馈':'编辑反馈'}}
<q-popup-proxy>
<q-banner v-if="isShowEdit">
<div class="row wrap" style="margin-top:10px;width:300px;">
<q-input filled v-model="feedBackMsg.Feedback" :rows="3" type="textarea"
class="col-12 q-pb-lg" label="反馈">
</q-input>
</div>
<div class="row wrap" style="float:right;margin-bottom:10px;">
<q-btn label="保存" color="accent" size="sm" @click="SetFeedBack()" />
</div>
</q-banner>
</q-popup-proxy>
</div>
</div>
</div>
</template>
<template v-slot:subtitle>
<div class="Time_TopList">
<div>{{ tItem.CreateTime }}</div>
<div>{{ tItem.CreateByName }}</div>
</div>
</template>
</q-timeline-entry>
</q-timeline>
</div>
</div>
</div>
</div>
<div style="margin-bottom:20px">
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="page_Count" input
@input="changePage" />
</div> -->
</div>
</template>
</template>
<
script
>
<
script
>
import
{
import
{
GetAssistTypeList
,
GetAssistTypeList
,
SetStudentAssist
,
SetStudentAssist
,
GetStudentAssistList
GetStudentAssistList
,
RemoveStudentAssist
}
from
'../../../api/sale/sale'
}
from
'../../../api/sale/sale'
import
{
import
{
queryEmployee
queryEmployee
...
@@ -115,19 +98,20 @@
...
@@ -115,19 +98,20 @@
return
{
return
{
isShowAdd
:
false
,
isShowAdd
:
false
,
AssitMsg
:
{
AssitMsg
:
{
StuId
:
1
,
//学员编号
StuId
:
1
,
//学员编号
AssistList
:[]
Id
:
0
,
//编号
AssistId
:
1
,
//员工编号
AssistType
:
1
//类型
},
},
msg
:
{
msg
:
{
StuId
:
1
StuId
:
1
},
},
isShowEdit
:
false
,
isShowEdit
:
false
,
dataList
:
[],
dataList
:
[],
page_Count
:
0
,
page_Count
:
0
,
AssistDropList
:[],
//下拉数据
AssistDropList
:
[],
//下拉数据
employeeList
:
[],
employeeList
:
[],
myEmployeeList
:[],
myEmployeeList
:
[],
}
}
},
},
created
()
{
created
()
{
...
@@ -143,9 +127,9 @@
...
@@ -143,9 +127,9 @@
},
},
methods
:
{
methods
:
{
//获取协助人员
//获取协助人员
GetAssistTypeList
(){
GetAssistTypeList
()
{
GetAssistTypeList
({}).
then
(
res
=>
{
GetAssistTypeList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
AssistDropList
=
res
.
Data
;
this
.
AssistDropList
=
res
.
Data
;
}
}
})
})
...
@@ -167,45 +151,70 @@
...
@@ -167,45 +151,70 @@
);
);
});
});
},
},
//新增协助人员
addAssist
(){
let
obj
=
{
Id
:
0
,
//编号
AssistId
:
1
,
//员工编号
AssistType
:
1
,
//类型
StuId
:
1
,
//学员编号
}
this
.
AssitMsg
.
AssistList
.
push
(
obj
);
},
//保存协同人员
//保存协同人员
saveAssit
()
{
saveAssit
()
{
SetStudentAssist
(
this
.
AssitMsg
).
then
(
res
=>
{
SetStudentAssist
(
this
.
AssitMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
})
this
.
getList
();
this
.
isShowAdd
=
false
;
this
.
clearMsg
();
}
}
}).
catch
(()
=>
{
}).
catch
(()
=>
{
})
})
},
},
clearMsg
()
{
this
.
AssitMsg
.
Id
=
0
;
this
.
AssitMsg
.
AssistId
=
1
;
this
.
AssitMsg
.
AssistType
=
1
;
},
//获取数据
//获取数据
getList
()
{
getList
()
{
GetStudentAssistList
(
this
.
msg
).
then
(
res
=>
{
GetStudentAssistList
(
this
.
msg
).
then
(
res
=>
{
console
.
log
(
res
,
'数据'
);
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
;
}
}
}).
catch
(()
=>
{
}).
catch
(()
=>
{
})
})
},
},
//删除到访
//删除协同
delAssist
(
index
)
{
deleteAssits
(
Id
)
{
this
.
AssitMsg
.
AssistList
.
splice
(
index
,
1
);
let
that
=
this
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'是否确定删除?'
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
RemoveStudentAssist
({
Id
:
Id
}).
then
((
res
)
=>
{
that
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
timeout
:
2000
,
message
:
res
.
Message
,
position
:
'top'
})
that
.
getList
()
})
}).
onCancel
(()
=>
{});
},
},
changePage
(
val
)
{
//获取修改数据
this
.
msg
.
pageIndex
=
val
;
getEditInfo
(
obj
)
{
this
.
getList
();
this
.
AssitMsg
.
Id
=
obj
.
Id
;
this
.
AssitMsg
.
AssistId
=
obj
.
AssistId
;
this
.
AssitMsg
.
AssistType
=
obj
.
AssistType
;
this
.
isShowAdd
=
true
;
}
}
}
}
}
}
...
...
src/components/school/student/student-genjin.vue
View file @
25ba5fae
...
@@ -91,6 +91,15 @@
...
@@ -91,6 +91,15 @@
methods
:
{
methods
:
{
//保存跟进
//保存跟进
saveFlow
()
{
saveFlow
()
{
if
(
this
.
flowMsg
.
Remark
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
timeout
:
2000
,
message
:
'请输入内容!'
,
})
return
;
}
saveStudentFollow
(
this
.
flowMsg
).
then
(
res
=>
{
saveStudentFollow
(
this
.
flowMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
...
...
src/components/school/student/student-left.vue
View file @
25ba5fae
...
@@ -66,9 +66,9 @@
...
@@ -66,9 +66,9 @@
<div
class=
"info_content"
style=
"margin-bottom:0;"
>
<div
class=
"info_content"
style=
"margin-bottom:0;"
>
<div
class=
"customer_info_component"
>
<div
class=
"customer_info_component"
>
<div
class=
"customer_info_Stage"
>
<div
class=
"customer_info_Stage"
>
<div
class=
"stage_label"
>
客户名称
</div>
<div
class=
"stage_label"
style=
"margin-top:-16px;"
>
客户名称
</div>
<div
class=
"stage_value"
>
<div
class=
"stage_value"
>
<q-input
filled
v-model=
"customObj.StuName"
dense
></q-input>
<q-input
filled
v-model=
"customObj.StuName"
style=
"width:182px;"
:rules=
"[val => !!val || '请输入客户名称']"
ref=
"StuName"
dense
></q-input>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -83,32 +83,27 @@
...
@@ -83,32 +83,27 @@
</div>
</div>
<div
class=
"customer_info_component"
>
<div
class=
"customer_info_component"
>
<div
class=
"customer_info_Stage"
>
<div
class=
"customer_info_Stage"
>
<div
class=
"stage_label"
>
电话
</div>
<div
class=
"stage_label"
style=
"margin-top:-16px;"
>
电话
</div>
<div
class=
"stage_value"
>
<div
class=
"stage_value"
>
<q-input
filled
v-model=
"customObj.StuTel"
dense
></q-input>
<q-input
filled
v-model=
"customObj.StuTel"
style=
"width:182px;"
:rules=
"[val => !!val || '请输入电话号码']"
ref=
"StuTel"
dense
></q-input>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"customer_info_component"
>
<div
class=
"custom_Line"
></div>
<div
class=
"customer_info_Stage"
>
<div
class=
"info_title"
>
基本资料
</div>
<div
class=
"stage_label"
>
出生日期
</div>
<div
class=
"info_content"
>
<div
class=
"stage_value"
>
<div
class=
"info_item studentDate"
>
<q-input
filled
v-model=
"customObj.StuBirth"
dense
style=
"width:182px;"
mask=
"date"
label=
"出生日期"
>
<div
class=
"item_label"
>
出生日期
</div>
<template
v-slot:append
>
<div
class=
"item_value"
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-field
filled
dense
>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<template
v-slot:control
>
<q-date
v-model=
"customObj.StuBirth"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
<el-date-picker
v-model=
"customObj.StuBirth"
style=
"height:28px;width:150px"
type=
"date"
placeholder=
"选择日期"
>
</q-popup-proxy>
</el-date-picker>
</q-icon>
</
template
>
</
template
>
</q-input>
</q-field>
</div>
</div>
</div>
</div>
</div>
<div
class=
"custom_Line"
></div>
<div
class=
"info_title"
>
基本资料
</div>
<div
class=
"info_content"
>
<div
class=
"info_item"
>
<div
class=
"info_item"
>
<div
class=
"item_label"
>
客户来源
</div>
<div
class=
"item_label"
>
客户来源
</div>
<div
class=
"item_value"
>
<div
class=
"item_value"
>
...
@@ -170,6 +165,12 @@
...
@@ -170,6 +165,12 @@
<q-input
filled
v-model=
"customObj.PlatformName"
dense
></q-input>
<q-input
filled
v-model=
"customObj.PlatformName"
dense
></q-input>
</div>
</div>
</div>
</div>
<div
class=
"info_item"
v-if=
"customObj.StuChannel==7"
>
<div
class=
"item_label"
>
其他平台名称
</div>
<div
class=
"item_value"
>
<q-input
filled
v-model=
"customObj.PlatformName"
dense
></q-input>
</div>
</div>
<div
class=
"info_item"
>
<div
class=
"info_item"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"保存"
@
click=
"saveStu()"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"保存"
@
click=
"saveStu()"
/>
</div>
</div>
...
@@ -224,14 +225,7 @@
...
@@ -224,14 +225,7 @@
StuId
:
0
,
StuId
:
0
,
},
},
//客户对象
//客户对象
customObj
:
{
customObj
:
{},
AssistList
:[{
Id
:
0
,
//编号
AssistId
:
1
,
//员工编号
AssistType
:
1
,
//类型
StuId
:
1
,
//学员编号
}]
},
//日语基础列表
//日语基础列表
basicList
:
[],
basicList
:
[],
//学历列表
//学历列表
...
@@ -262,6 +256,18 @@
...
@@ -262,6 +256,18 @@
methods
:
{
methods
:
{
//保存学员信息
//保存学员信息
saveStu
()
{
saveStu
()
{
this
.
$refs
.
StuName
.
validate
();
this
.
$refs
.
StuTel
.
validate
();
if
(
!
this
.
$refs
.
StuName
.
hasError
&&!
this
.
$refs
.
StuTel
.
hasError
){
var
myreg
=
/^
(((
13
[
0-9
]{1})
|
(
15
[
0-9
]{1})
|
(
18
[
0-9
]{1}))
+
\d{8})
$/
;
if
(
!
myreg
.
test
(
this
.
customObj
.
StuTel
)){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请输入正确的电话号码`
})
return
}
saveStudent
(
this
.
customObj
).
then
(
res
=>
{
saveStudent
(
this
.
customObj
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
...
@@ -277,6 +283,7 @@
...
@@ -277,6 +283,7 @@
}
}
}
}
})
})
}
},
},
//获取员工列表
//获取员工列表
getEmployeeList
()
{
getEmployeeList
()
{
...
...
src/components/school/student/student-shiting.vue
View file @
25ba5fae
...
@@ -15,18 +15,15 @@
...
@@ -15,18 +15,15 @@
<q-btn
label=
"选择试听课"
style=
"margin-left:50px;"
color=
"accent q-mb-lg"
size=
"sm"
@
click=
"isShowTeacher=true"
/>
<q-btn
label=
"选择试听课"
style=
"margin-left:50px;"
color=
"accent q-mb-lg"
size=
"sm"
@
click=
"isShowTeacher=true"
/>
</div>
</div>
<template
v-if=
"isShowAdd"
>
<template
v-if=
"isShowAdd"
>
<div
class=
"row wrap"
>
<div
class=
"row wrap studentDate"
>
<q-input
filled
v-model=
"addMsg.ClassDate"
dense
ref=
"ClassDate"
class=
"col-6 q-pb-lg q-pr-lg"
mask=
"date"
<q-field
filled
class=
"q-pb-lg q-pr-lg"
dense
>
label=
"预约日期"
>
<template
v-slot:control
>
<template
v-slot:append
>
<el-date-picker
v-model=
"addMsg.ClassDate"
ref=
"ClassDate"
:rules=
"[val => !!val || '请选择预约日期']"
<q-icon
name=
"event"
class=
"cursor-pointer"
>
style=
"height:28px;width:228px"
type=
"date"
placeholder=
"预约日期"
>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
</el-date-picker>
<q-date
v-model=
"addMsg.ClassDate"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</
template
>
</q-
input
>
</q-
field
>
<div
class=
"Student_Date col-6"
>
<div
class=
"Student_Date col-6
q-pr-lg
"
>
<q-field
filled
class=
"q-pb-lg"
dense
>
<q-field
filled
class=
"q-pb-lg"
dense
>
<
template
v-slot:control
>
<
template
v-slot:control
>
<el-time-select
v-model=
"addMsg.ClassTime"
size=
"small"
ref=
"ClassTime"
style=
"width:50%"
:picker-options=
"
{
<el-time-select
v-model=
"addMsg.ClassTime"
size=
"small"
ref=
"ClassTime"
style=
"width:50%"
:picker-options=
"
{
...
@@ -53,7 +50,7 @@
...
@@ -53,7 +50,7 @@
:options=
"ContentList"
:rules=
"[val => !!val || '请选择主讲内容']"
label=
"主讲内容"
:options=
"ContentList"
:rules=
"[val => !!val || '请选择主讲内容']"
label=
"主讲内容"
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
stack-label
option-value=
"TId"
option-label=
"TeacherName"
v-model=
"addMsg.TeacherId"
<q-select
filled
stack-label
option-value=
"TId"
option-label=
"TeacherName"
v-model=
"addMsg.TeacherId"
ref=
"TeacherId"
:options=
"TeacherList"
label=
"选择教师"
dense
class=
"col-6 q-pb-lg"
emit-value
ref=
"TeacherId"
:options=
"TeacherList"
label=
"选择教师"
dense
class=
"col-6 q-pb-lg
q-pr-lg
"
emit-value
map-options
/>
map-options
/>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"row wrap"
>
...
@@ -182,8 +179,15 @@
...
@@ -182,8 +179,15 @@
methods
:
{
methods
:
{
//保存
//保存
saveAppointForm
()
{
saveAppointForm
()
{
this
.
$refs
.
ClassDate
.
validate
();
if
(
this
.
addMsg
.
ClassDate
==
''
){
this
.
$refs
.
ClassContent
.
validate
();
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
timeout
:
2000
,
message
:
'请选择预约日期!'
,
})
return
;
}
if
(
this
.
addMsg
.
ClassTime
==
''
)
{
if
(
this
.
addMsg
.
ClassTime
==
''
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
type
:
'negative'
,
type
:
'negative'
,
...
@@ -202,7 +206,7 @@
...
@@ -202,7 +206,7 @@
})
})
return
;
return
;
}
}
if
(
!
this
.
$refs
.
Class
Date
.
hasError
&&
!
this
.
$refs
.
Class
Content
.
hasError
)
{
if
(
!
this
.
$refs
.
ClassContent
.
hasError
)
{
SetVisitorReserve
(
this
.
addMsg
).
then
(
res
=>
{
SetVisitorReserve
(
this
.
addMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
...
...
src/components/school/student/student-visit.vue
View file @
25ba5fae
<
style
>
<
style
>
.studentDate
.el-input__inner
{
background-color
:
transparent
;
border
:
0
;
height
:
28px
;
}
.studentDate
.el-input__icon
{
height
:
auto
;
line-height
:
28px
;
}
</
style
>
</
style
>
<
template
>
<
template
>
...
@@ -7,39 +17,33 @@
...
@@ -7,39 +17,33 @@
<q-btn
label=
"取消"
style=
"margin-left:20px;"
v-if=
"isShowAdd"
flat
color=
"grey-10 q-mb-lg"
size=
"sm"
<q-btn
label=
"取消"
style=
"margin-left:20px;"
v-if=
"isShowAdd"
flat
color=
"grey-10 q-mb-lg"
size=
"sm"
@
click=
"isShowAdd=false"
/>
@
click=
"isShowAdd=false"
/>
<template
v-if=
"isShowAdd"
>
<template
v-if=
"isShowAdd"
>
<div
class=
"row wrap"
>
<div
class=
"row wrap
studentDate
"
>
<q-select
filled
option-value=
"SId"
dense
class=
"col-6 q-pb-lg q-pr-lg"
option-label=
"SName"
<q-select
filled
option-value=
"SId"
dense
class=
"col-6 q-pb-lg q-pr-lg"
option-label=
"SName"
v-model=
"VisitMsg.School_Id"
:options=
"schoolList"
emit-value
map-options
label=
"到访校区"
/>
v-model=
"VisitMsg.School_Id"
:options=
"schoolList"
emit-value
map-options
label=
"到访校区"
/>
<q-input
filled
v-model=
"VisitMsg.Date"
dense
class=
"col-6 q-pb-lg"
mask=
"date"
label=
"日期"
>
<q-field
filled
class=
"q-pb-lg"
dense
>
<template
v-slot:append
>
<template
v-slot:control
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<el-date-picker
v-model=
"VisitMsg.Date"
style=
"height:28px;width:228px"
type=
"date"
placeholder=
"到访日期"
>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
</el-date-picker>
<q-date
v-model=
"VisitMsg.Date"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</
template
>
</q-
input
>
</q-
field
>
</div>
</div>
<div
class=
"row warp"
>
<div
class=
"row warp studentDate"
>
<q-input
filled
mask=
"time"
dense
v-model=
"VisitMsg.VisitTime"
:rules=
"['time']"
class=
"col-6 q-pb-lg q-pr-lg"
>
<q-field
filled
class=
"q-pb-lg q-pr-lg"
dense
>
<
template
v-slot:append
>
<
template
v-slot:control
>
<q-icon
name=
"access_time"
class=
"cursor-pointer"
>
<el-time-select
v-model=
"VisitMsg.VisitTime"
size=
"small"
ref=
"ClassTime"
style=
"width:230px"
:picker-options=
"
{
<q-popup-proxy
transition-show=
"scale"
transition-hide=
"scale"
>
start: '09:00',
<q-time
v-model=
"VisitMsg.VisitTime"
>
step: '00:15',
<div
class=
"row items-center justify-end"
>
end: '21:00',
<q-btn
v-close-popup
label=
"Close"
color=
"primary"
flat
/>
}" placeholder="到访时间">
</div>
</el-time-select>
</q-time>
</q-popup-proxy>
</q-icon>
</
template
>
</
template
>
</q-
input
>
</q-
field
>
<q-select
filled
v-model=
"VisitMsg.ReceptionPersion"
dense
@
filter=
"filterEmployee"
class=
"col-6 q-pb-lg"
<q-select
filled
v-model=
"VisitMsg.ReceptionPersion"
style=
"width:250px;"
dense
@
filter=
"filterEmployee"
class=
"col-6 q-pb-lg"
:options=
"myEmployeeList"
option-label=
"EmployeeName"
use-input
option-value=
"Id"
emit-value
map-options
:options=
"myEmployeeList"
option-label=
"EmployeeName"
use-input
option-value=
"Id"
emit-value
map-options
label=
"接待人"
/>
label=
"接待人"
/>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"row wrap"
>
<q-input
filled
v-model=
"VisitMsg.Remark"
dense
:rows=
"3"
type=
"textarea"
class=
"col-12 q-pb-lg"
label=
"备注"
>
<q-input
filled
v-model=
"VisitMsg.Remark"
dense
:rows=
"3"
type=
"textarea"
class=
"col-12 q-pb-lg
q-pr-lg
"
label=
"备注"
>
</q-input>
</q-input>
</div>
</div>
...
@@ -70,7 +74,10 @@
...
@@ -70,7 +74,10 @@
</div>
</div>
<div
class=
"StuCom_Remark"
>
<div
class=
"StuCom_Remark"
>
<div
class=
"StuCom_Left"
>
是否到访
</div>
:
<div
class=
"StuCom_Left"
>
是否到访
</div>
:
<div
class=
"StuCom_Inner"
>
{{
tItem
.
IsVisitStr
}}
</div>
<div
class=
"StuCom_Inner"
>
<span
v-if=
"tItem.IsVisit==0"
class=
"text-negative"
>
{{
tItem
.
IsVisitStr
}}
</span>
<span
v-if=
"tItem.IsVisit==1"
class=
"text-primary"
>
{{
tItem
.
IsVisitStr
}}
</span>
</div>
</div>
</div>
</div>
</div>
<div
style=
"display:flex;margin-top:10px;"
>
<div
style=
"display:flex;margin-top:10px;"
>
...
@@ -180,12 +187,18 @@
...
@@ -180,12 +187,18 @@
this
.
getSchool
();
this
.
getSchool
();
this
.
getEmployeeList
();
this
.
getEmployeeList
();
this
.
getList
();
this
.
getList
();
let
userInfo
=
this
.
getLocalStorage
();
if
(
userInfo
){
this
.
VisitMsg
.
ReceptionPersion
=
parseInt
(
userInfo
.
AccountId
);
}
},
},
methods
:
{
methods
:
{
//点击到访
//点击到访
clickItem
(
item
)
{
clickItem
(
item
)
{
this
.
feedBackMsg
.
Id
=
item
.
Id
;
this
.
feedBackMsg
.
Id
=
item
.
Id
;
this
.
feedBackMsg
.
Feedback
=
item
.
Feedback
;
this
.
feedBackMsg
.
Feedback
=
item
.
Feedback
;
this
.
feedBackMsg
.
IsVisit
=
item
.
IsVisit
;
this
.
isShowEdit
=
true
;
this
.
isShowEdit
=
true
;
},
},
SetFeedBack
()
{
SetFeedBack
()
{
...
@@ -249,6 +262,24 @@
...
@@ -249,6 +262,24 @@
//保存数据
//保存数据
saveVisit
()
{
saveVisit
()
{
this
.
VisitMsg
.
StuId
=
this
.
saveObj
.
StuId
;
this
.
VisitMsg
.
StuId
=
this
.
saveObj
.
StuId
;
if
(
this
.
VisitMsg
.
Date
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
timeout
:
2000
,
message
:
'请选择到访日期!'
,
})
return
;
}
if
(
this
.
VisitMsg
.
VisitTime
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
timeout
:
2000
,
message
:
'请选择到访时间!'
,
})
return
;
}
saveStudentVisit
(
this
.
VisitMsg
).
then
(
res
=>
{
saveStudentVisit
(
this
.
VisitMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
...
@@ -307,4 +338,5 @@
...
@@ -307,4 +338,5 @@
}
}
},
},
}
}
</
script
>
</
script
>
src/components/school/student/student-yuefang.vue
View file @
25ba5fae
...
@@ -9,35 +9,21 @@
...
@@ -9,35 +9,21 @@
@
click=
"isShowAdd=false"
/>
@
click=
"isShowAdd=false"
/>
</div>
</div>
<template
v-if=
"isShowAdd"
>
<template
v-if=
"isShowAdd"
>
<div
class=
"row wrap"
>
<div
class=
"row wrap
studentDate
"
>
<q-input
filled
class=
"col-6 q-pb-lg q-pr-lg"
dense
v-model=
"yueMsg.AppointmentPoint"
label=
"约访地点"
></q-input>
<q-input
filled
class=
"col-6 q-pb-lg q-pr-lg"
dense
v-model=
"yueMsg.AppointmentPoint"
label=
"约访地点"
></q-input>
<q-input
filled
v-model=
"yueMsg.AppointmentTime"
dense
>
<q-field
filled
class=
"q-pb-lg"
dense
>
<template
v-slot:prepend
>
<template
v-slot:control
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<el-date-picker
<q-popup-proxy
transition-show=
"scale"
transition-hide=
"scale"
>
v-model=
"yueMsg.AppointmentTime"
<q-date
v-model=
"yueMsg.AppointmentTime"
mask=
"YYYY-MM-DD HH:mm"
>
type=
"datetime"
<div
class=
"row items-center justify-end"
>
style=
"width:228px"
<q-btn
v-close-popup
label=
"Close"
color=
"primary"
flat
/>
placeholder=
"选择约访日期时间!"
>
</div>
</el-date-picker>
</q-date>
</q-popup-proxy>
</q-icon>
</
template
>
<
template
v-slot:append
>
<q-icon
name=
"access_time"
class=
"cursor-pointer"
>
<q-popup-proxy
transition-show=
"scale"
transition-hide=
"scale"
>
<q-time
v-model=
"yueMsg.AppointmentTime"
mask=
"YYYY-MM-DD HH:mm"
format24h
>
<div
class=
"row items-center justify-end"
>
<q-btn
v-close-popup
label=
"Close"
color=
"primary"
flat
/>
</div>
</q-time>
</q-popup-proxy>
</q-icon>
</
template
>
</
template
>
</q-
input
>
</q-
field
>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"row wrap"
>
<q-input
filled
v-model=
"yueMsg.Remark"
dense
:rows=
"3"
type=
"textarea"
class=
"col-12 q-pb-lg"
label=
"备注"
>
<q-input
filled
v-model=
"yueMsg.Remark"
dense
:rows=
"3"
type=
"textarea"
class=
"col-12 q-pb-lg
q-pr-lg
"
label=
"备注"
>
</q-input>
</q-input>
</div>
</div>
<div
class=
"row wrap"
style=
"margin-bottom:10px;"
>
<div
class=
"row wrap"
style=
"margin-bottom:10px;"
>
...
@@ -180,6 +166,24 @@
...
@@ -180,6 +166,24 @@
//保存约访
//保存约访
savePoint
()
{
savePoint
()
{
this
.
yueMsg
.
StuId
=
this
.
saveObj
.
StuId
;
this
.
yueMsg
.
StuId
=
this
.
saveObj
.
StuId
;
if
(
this
.
yueMsg
.
AppointmentPoint
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
timeout
:
2000
,
message
:
'请输入约访地点!'
,
})
return
;
}
if
(
this
.
yueMsg
.
AppointmentTime
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
timeout
:
2000
,
message
:
'请选择约访日期时间!'
,
})
return
;
}
saveStudentAppointment
(
this
.
yueMsg
).
then
(
res
=>
{
saveStudentAppointment
(
this
.
yueMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
...
...
src/components/school/student/studentRight-form.vue
View file @
25ba5fae
...
@@ -424,7 +424,7 @@
...
@@ -424,7 +424,7 @@
.operate_Content
{
.operate_Content
{
overflow
:
auto
;
overflow
:
auto
;
padding-right
:
20px
;
/* padding-right: 20px; */
}
}
.operate_Content
::-webkit-scrollbar
{
.operate_Content
::-webkit-scrollbar
{
...
@@ -484,6 +484,6 @@
...
@@ -484,6 +484,6 @@
text-align-last
:
justify
;
text-align-last
:
justify
;
}
}
.fullscreen
{
.fullscreen
{
z-index
:
9999
;
z-index
:
3000
;
}
}
</
style
>
</
style
>
\ No newline at end of file
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