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
7bed3985
Commit
7bed3985
authored
Mar 22, 2023
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
上传到访表、是否邀约、财务流程 业绩提成规则调整
parent
f878f94a
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
211 additions
and
10 deletions
+211
-10
index.js
src/api/school/index.js
+11
-0
marketCommissionfrom.vue
src/components/finance/marketCommissionfrom.vue
+60
-5
student-left.vue
src/components/school/student/student-left.vue
+43
-1
stulist.vue
src/components/school/student/stulist.vue
+73
-1
commissionRule.vue
src/pages/financial/market/commissionRule.vue
+24
-3
No files found.
src/api/school/index.js
View file @
7bed3985
...
...
@@ -292,6 +292,17 @@ export function getStudentDorpDownList(data) {
})
}
/**
* 确认邀约咨询30分钟以上
*/
export
function
SetStudentSureConsult
(
data
)
{
return
request
({
url
:
'/CustomerStudent/SetStudentSureConsult'
,
method
:
'post'
,
data
})
}
/**
* 添加修改学员
...
...
src/components/finance/marketCommissionfrom.vue
View file @
7bed3985
...
...
@@ -150,8 +150,12 @@
</div>
<div
style=
"margin-bottom: 80px;"
>
<div>
<span
style=
"width: 75px;"
>
提成类型:
</span>
<q-radio
v-model=
"addMsg.SendType"
val=
"1"
label=
"业绩比例"
/>
<q-radio
v-model=
"addMsg.SendType"
val=
"2"
label=
"固定金额"
/>
</div>
<div
style=
"margin-bottom: 80px;"
v-if=
"addMsg.SendType=='1'"
>
<div>
业绩比例
</div>
<div
...
...
@@ -206,6 +210,39 @@
/>
</div>
</div>
<div
style=
"margin-bottom: 80px;"
v-if=
"addMsg.SendType=='2'"
>
<div>
固定金额
</div>
<div
style=
"display: flex;align-items: center;margin-bottom: 10px;"
>
<q-input
clearable
filled
v-model=
"addMsg.PeopleMoney"
style=
"width: 190px;margin-right: 5px;"
type=
"number"
@
input=
"$forceUpdate()"
label=
"提成金额"
>
<template
v-slot:append
>
<span
class=
"fz14"
>
/人
</span>
</
template
>
</q-input>
<q-input
clearable
filled
v-model=
"addMsg.ExtraMoney"
style=
"width: 190px;margin-right: 5px;"
type=
"number"
@
input=
"$forceUpdate()"
label=
"额外奖励"
>
<
template
v-slot:append
>
<span
class=
"fz14"
>
/人
</span>
</
template
>
</q-input>
<div>
<span
class=
"fz14 text-negative"
>
注释:额外奖励需确认邀约咨询30分钟以上
</span>
</div>
</div>
</div>
<div
style=
"width: 100%;height: 50px;position: absolute;left: 0;bottom: 0;background: #FFF;display: flex;align-items: center;padding: 0 20px;justify-content: flex-end;"
>
<q-btn
color=
"accent"
...
...
@@ -288,7 +325,10 @@ export default {
FirstRate
:
''
,
//首次发放比例
RateList
:
[
{
StartValue
:
''
,
EndValue
:
''
,
Rate
:
''
}
]
],
SendType
:
'1'
,
PeopleMoney
:
0
,
ExtraMoney
:
0
}
}
else
{
//修改
this
.
addMsg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
selectData
))
...
...
@@ -298,6 +338,9 @@ export default {
this
.
addMsg
.
CourseList
=
this
.
getId
(
this
.
selectData
.
CourseList
,
2
)
this
.
addMsg
.
EmpList
=
this
.
getId
(
this
.
selectData
.
EmpList
,
3
)
this
.
addMsg
.
ChildEmpList
=
this
.
getId
(
this
.
selectData
.
ChildEmpList
,
3
)
this
.
addMsg
.
SendType
=
this
.
addMsg
.
SendType
?
String
(
this
.
addMsg
.
SendType
):
'1'
this
.
addMsg
.
PeopleMoney
=
this
.
addMsg
.
PeopleMoney
?
this
.
addMsg
.
PeopleMoney
:
0
this
.
addMsg
.
ExtraMoney
=
this
.
addMsg
.
ExtraMoney
?
this
.
addMsg
.
ExtraMoney
:
0
if
(
this
.
addMsg
.
EmpList
.
length
==
this
.
employeeList
.
length
){
this
.
personnel
=
true
...
...
@@ -310,7 +353,9 @@ export default {
}
else
{
this
.
branch
=
false
}
if
(
this
.
addMsg
.
RateList
.
length
==
0
){
this
.
addMsg
.
RateList
.
push
({
StartValue
:
''
,
EndValue
:
''
,
Rate
:
''
})
}
}
},
...
...
@@ -367,7 +412,17 @@ export default {
this
.
$refs
.
Name
.
validate
();
this
.
$refs
.
CourseRate
.
validate
();
this
.
$refs
.
FirstRate
.
validate
();
if
(
this
.
addMsg
.
SendType
==
'1'
){
this
.
addMsg
.
PeopleMoney
=
0
this
.
addMsg
.
ExtraMoney
=
0
}
else
{
this
.
addMsg
.
RateList
=
[]
if
(
this
.
addMsg
.
PeopleMoney
==
''
){
this
.
addMsg
.
PeopleMoney
=
0
}
if
(
this
.
addMsg
.
ExtraMoney
==
''
){
this
.
addMsg
.
ExtraMoney
=
0
}
}
if
(
!
this
.
$refs
.
Name
.
hasError
&&
!
this
.
$refs
.
CourseRate
.
hasError
&&
!
this
.
$refs
.
FirstRate
.
hasError
)
{
let
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
addMsg
))
...
...
src/components/school/student/student-left.vue
View file @
7bed3985
...
...
@@ -276,6 +276,27 @@
</div>
</div>
</div>
<div
class=
"customer_info_component"
>
<div
class=
"customer_info_Stage"
>
<div
class=
"stage_label"
>
到访表
</div>
<div
class=
"stage_value row"
>
<div
class=
"q-pr-lg text-blue"
v-if=
"customObj.FileVoucher"
>
<a
:href=
"customObj.FileVoucher"
target=
"_blank"
rel=
"noopener noreferrer"
style=
"color:inherit;"
>
查看
</a>
</div>
<el-upload
:before-upload=
"uploadVisitTableFile"
:multiple=
"false"
action=
""
:show-file-list=
"false"
>
<q-btn
color=
"primary"
size=
"xs"
unelevated
label=
"上传"
>
<i
class=
"el-icon-upload q-pl-xs"
></i>
</q-btn>
</el-upload>
</div>
</div>
</div>
<div
class=
"custom_Line"
></div>
<div
class=
"info_title"
>
基本资料
</div>
<div
class=
"info_content"
>
...
...
@@ -339,7 +360,7 @@
saveStudent
,
//保存学员信息
GetStudentTypeList
,
getStudentDorpDownList
,
GetNeedsList
GetNeedsList
,
}
from
"../../../api/school/index"
;
import
{
getGuestBasicsEnumList
,
...
...
@@ -415,6 +436,7 @@
StuType
:
""
,
//客户类型
StuNeeds
:
0
,
//客户需求
StuTel
:
""
,
//显示使用
FileVoucher
:
""
//http://192.168.10.214:8130/EduSystem/Test/Upload/SetStudentVoucher/202303221126306360000000004.png
},
//日语基础列表
basicList
:
[],
...
...
@@ -448,6 +470,7 @@
},
created
()
{
this
.
userInfo
=
this
.
getLocalStorage
();
let
userInfo
=
this
.
getLocalStorage
();
this
.
getStuStageList
();
this
.
getBasicList
();
this
.
queryGuestEducationEnumList
();
...
...
@@ -476,6 +499,13 @@
}
},
methods
:
{
UploadImage
(
file
)
{
UploadSelfFile
(
"SetStudentVoucher"
,
files
,
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customObj
.
StuIcon
=
res
.
FileUrl
;
}
});
},
//是否显示关联来源人信息
IsShowStuSourceIdName
(
item
)
{
var
isHaveAuth
=
false
;
...
...
@@ -495,6 +525,16 @@
return
false
;
}
},
// 上传到访表
uploadVisitTableFile
(
files
)
{
UploadSelfFile
(
"FileVoucher"
,
files
,
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customObj
.
FileVoucher
=
res
.
FileUrl
}
else
{
this
.
$message
.
error
(
'上传文件失败,请重新上传'
);
}
});
},
uploadFile
(
files
)
{
UploadSelfFile
(
"studentIcon"
,
files
,
res
=>
{
if
(
res
.
Code
==
1
)
{
...
...
@@ -617,6 +657,7 @@
}
});
},
//获取员工列表
getEmployeeList
()
{
queryEmployee
({
...
...
@@ -764,6 +805,7 @@
this
.
customObj
.
WeChatNo
=
tempDate
.
WeChatNo
;
this
.
customObj
.
StuNeeds
=
tempDate
.
StuNeeds
;
this
.
customObj
.
StuTel
=
tempDate
.
StuTel
;
this
.
customObj
.
FileVoucher
=
tempDate
.
FileVoucher
;
//有订单
if
(
tempDate
.
OrderCount
&&
tempDate
.
OrderCount
>
0
)
{
this
.
isHaveOrder
=
true
;
...
...
src/components/school/student/stulist.vue
View file @
7bed3985
...
...
@@ -237,6 +237,23 @@
</template>
</q-td>
</template>
<
template
v-slot:body-cell-CreateByName=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"row no-wrap items-center"
>
<div>
<template
v-if=
"isInvite"
>
<q-toggle
v-model=
"props.row.IsSureConsultTime"
:false-value=
"0"
:true-value=
"1"
@
input=
"setInvite(props.row)"
/>
<q-tooltip>
{{
props
.
row
.
IsSureConsultTime
?
'取消邀约'
:
'确认邀约咨询30分钟以上'
}}
</q-tooltip>
</
template
>
<span
v-else
class=
"q-pr-sm text-grey-7"
>
{{props.row.IsSureConsultTime?'已邀约':'未邀约'}}
</span>
</div>
<span>
{{props.row.CreateByName}}
</span>
</div>
</q-td>
</template>
</q-table>
<student-form
v-if=
"isShowStuForm"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
</student-form>
...
...
@@ -270,6 +287,10 @@
import
{
queryEmployee
}
from
"../../../api/users/user"
;
import
{
SetStudentSureConsult
,
//邀约
}
from
"../../../api/school/index"
;
import
{
date
}
from
'quasar'
export
default
{
props
:
{
...
...
@@ -473,6 +494,12 @@
field
:
"CreateTimeStr"
,
align
:
"left"
},
// {
// name: "IsSureConsultTime",
// label: "是否邀约",
// align: "left",
// field: "IsSureConsultTime"
// },
{
name
:
"CreateByName"
,
label
:
"负责人"
,
...
...
@@ -504,7 +531,8 @@
},
//员工列表
employeeList
:
[],
myEmployeeList
:
[]
myEmployeeList
:
[],
isInvite
:
false
};
},
watch
:
{
...
...
@@ -518,6 +546,20 @@
},
created
()
{
this
.
userInfo
=
this
.
getLocalStorage
();
// 邀约功能权限
this
.
isInvite
=
false
;
if
(
this
.
userInfo
&&
this
.
userInfo
.
ActionMenuList
&&
this
.
userInfo
.
ActionMenuList
.
length
>
0
)
{
this
.
userInfo
.
ActionMenuList
.
forEach
(
x
=>
{
if
(
x
.
FunctionCode
==
"isInvite"
)
{
this
.
isInvite
=
true
;
}
});
}
this
.
formatAssistList
();
},
mounted
()
{
...
...
@@ -527,6 +569,18 @@
...
mapGetters
([
"logo"
,
"name"
])
},
methods
:
{
setInvite
(
row
){
if
(
!
this
.
isInvite
)
return
let
msg
=
{
StuId
:
row
.
StuId
,
IsSureConsultTime
:
row
.
IsSureConsultTime
}
SetStudentSureConsult
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$emit
(
"success"
);
}
});
},
//是否有下载客户资料权限
IsDownLoadStu
()
{
var
isHaveAuth
=
false
;
...
...
@@ -737,6 +791,15 @@
},
//转订单
transferOrder
()
{
let
CreateTimeStr
=
date
.
formatDate
(
new
Date
(
this
.
selection
[
0
].
CreateTimeStr
),
'YYYY-MM-DD'
)
let
CreateTimeStr2
=
date
.
formatDate
(
new
Date
(
'2023-03-22'
),
'YYYY-MM-DD'
)
console
.
log
(
CreateTimeStr
>=
CreateTimeStr2
,
CreateTimeStr
,
CreateTimeStr2
)
if
(
CreateTimeStr
>=
CreateTimeStr2
){
if
(
!
this
.
selection
[
0
].
FileVoucher
){
this
.
$message
.
error
(
'需先上传学员到访表'
)
return
}
}
const
firstId
=
this
.
selection
[
0
].
CustomerId
;
const
flag
=
this
.
selection
.
every
(
e
=>
{
return
e
.
CustomerId
==
firstId
;
...
...
@@ -753,6 +816,15 @@
},
//转留学
transferAbroad
()
{
let
CreateTimeStr
=
date
.
formatDate
(
new
Date
(
this
.
selection
[
0
].
CreateTimeStr
),
'YYYY-MM-DD'
)
let
CreateTimeStr2
=
date
.
formatDate
(
new
Date
(
'2023-03-22'
),
'YYYY-MM-DD'
)
console
.
log
(
CreateTimeStr
>=
CreateTimeStr2
,
CreateTimeStr
,
CreateTimeStr2
)
if
(
CreateTimeStr
>=
CreateTimeStr2
){
if
(
!
this
.
selection
[
0
].
FileVoucher
){
this
.
$message
.
error
(
'需先上传学员到访表'
)
return
}
}
this
.
isShowAbroad
=
true
;
},
getCurseManager
(
row
)
{
...
...
src/pages/financial/market/commissionRule.vue
View file @
7bed3985
...
...
@@ -68,11 +68,11 @@
<tr>
<th
width=
"100"
style=
"min-width: 100px;max-width: 100px;"
>
方案名称
</th>
<th
width=
"5%"
>
类型
</th>
<th
width=
"1
5
%"
>
校区
</th>
<th
width=
"1
0
%"
>
校区
</th>
<th
width=
"5%"
>
课程类型
</th>
<th
width=
""
>
课程
</th>
<th
width=
"7%"
>
首次发放比例
</th>
<th
width=
"
5
%"
>
课程比例
</th>
<th
width=
"
10
%"
>
课程比例
</th>
<th
width=
"10%"
>
提成人员
</th>
<th
width=
"10%"
>
部门人员
</th>
<th
width=
"10%"
>
操作
</th>
...
...
@@ -113,6 +113,7 @@
<td>
<span
>
{{
item
.
CourseRate
+
'%'
}}
</span>
</td>
<td
style=
"padding: 0 10px;"
>
<span
v-for=
"( son , sIndex ) in item.EmpList"
:key=
"sIndex"
>
<span
v-if=
"sIndex
<8
"
>
{{
son
.
EmployeeName
}}{{
item
.
EmpList
.
length
==
sIndex
+
1
?
''
:
'、'
}}
</span>
...
...
@@ -127,6 +128,7 @@
<el-button
slot=
"reference"
style=
"border: none;"
type=
"text"
>
查看更多
</el-button>
</el-popover>
</td>
<td
style=
"padding: 0 10px;"
>
<span
v-for=
"( son , sIndex ) in item.ChildEmpList"
:key=
"sIndex"
>
<span
v-if=
"sIndex
<8
"
>
{{
son
.
EmployeeName
}}{{
item
.
ChildEmpList
.
length
==
sIndex
+
1
?
''
:
'、'
}}
</span>
...
...
@@ -174,7 +176,7 @@
</tr>
</table>
-->
<div
style=
"width:100%;overflow-x: auto;"
>
<table
<table
v-if=
"item.RateList.length>0||item.SendType=='1'"
class=
"po_content singeRowTable"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
...
...
@@ -193,6 +195,25 @@
</tr>
</table>
<table
v-if=
"item.SendType=='2'"
class=
"po_content singeRowTable"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<td
rowspan=
"2"
width=
"100"
style=
"min-width: 100px;"
>
固定金额
</td>
<th
style=
"min-width: 220px;"
>
提成金额/人
</th>
<th
style=
"min-width: 220px;"
>
额外奖励/人
</th>
</tr>
<tr
style=
""
>
<td
style=
"min-width: 220px;"
>
{{
item
.
PeopleMoney
}}
</td>
<td
style=
"min-width: 220px;"
>
{{
item
.
ExtraMoney
}}
</td>
</tr>
</table>
</div>
</div>
...
...
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