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
eb90671a
Commit
eb90671a
authored
Dec 22, 2021
by
罗超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
into master
parents
8f723a68
f8551a94
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
323 additions
and
126 deletions
+323
-126
common.js
src/api/common/common.js
+3
-0
index.js
src/api/finance/index.js
+10
-0
marketCommissionfrom.vue
src/components/finance/marketCommissionfrom.vue
+108
-73
orderlist.vue
src/components/sale/orderlist.vue
+2
-2
contractSign.vue
src/pages/contractSign.vue
+71
-4
commissionRule.vue
src/pages/financial/market/commissionRule.vue
+102
-20
myOrder.vue
src/pages/sale/myOrder.vue
+10
-10
orderStatistics.vue
src/pages/sale/orderStatistics.vue
+12
-12
studyOrder.vue
src/pages/sale/studyOrder.vue
+5
-5
No files found.
src/api/common/common.js
View file @
eb90671a
...
@@ -247,6 +247,9 @@ export function UploadFileToSystem(uploadConfig, fileFullPath, fileObj, uploadLo
...
@@ -247,6 +247,9 @@ export function UploadFileToSystem(uploadConfig, fileFullPath, fileObj, uploadLo
if
(
configObj
.
isCreateCover
&&
configObj
.
isCreateCover
==
1
)
{
if
(
configObj
.
isCreateCover
&&
configObj
.
isCreateCover
==
1
)
{
url
+=
"&isCreateCover=1"
url
+=
"&isCreateCover=1"
}
}
if
(
configObj
.
isOcr
&&
configObj
.
isOcr
==
1
)
{
url
+=
"&ocr=1"
}
}
}
let
formData
=
new
FormData
()
let
formData
=
new
FormData
()
formData
.
append
(
'myfile'
,
fileObj
)
formData
.
append
(
'myfile'
,
fileObj
)
...
...
src/api/finance/index.js
View file @
eb90671a
...
@@ -595,6 +595,16 @@ export function getTeacherContributeConfig(data) {
...
@@ -595,6 +595,16 @@ export function getTeacherContributeConfig(data) {
data
data
});
});
}
}
/**
* 市场顾问保存删除
*/
export
function
delSellAchievementsRule
(
data
)
{
return
request
({
url
:
'/SellAchievements/DelSellAchievementsRule'
,
method
:
'post'
,
data
});
}
/**
/**
* 获取人头奖金配置分页列表
* 获取人头奖金配置分页列表
...
...
src/components/finance/marketCommissionfrom.vue
View file @
eb90671a
...
@@ -39,6 +39,18 @@
...
@@ -39,6 +39,18 @@
map-options
map-options
@
input=
"$forceUpdate()"
@
input=
"$forceUpdate()"
/>
/>
<div
style=
"display: flex;align-items: center;"
>
<span
style=
"width: 75px;"
>
类型:
</span>
<q-radio
v-model=
"addMsg.Type"
val=
"1"
label=
"市场"
/>
<q-radio
v-model=
"addMsg.Type"
val=
"2"
label=
"顾问"
/>
<q-radio
v-model=
"addMsg.Type"
val=
"3"
label=
"教师"
/>
</div>
<div
style=
"display: flex;align-items: center;"
>
<span
style=
"width: 75px;"
>
课程类型:
</span>
<q-radio
v-model=
"addMsg.CourseType"
val=
"1"
label=
"包含"
/>
<q-radio
v-model=
"addMsg.CourseType"
val=
"2"
label=
"不包含"
/>
</div>
<q-select
<q-select
filled
filled
stack-label
stack-label
...
@@ -56,17 +68,6 @@
...
@@ -56,17 +68,6 @@
map-options
map-options
@
filter=
"filterFn"
@
filter=
"filterFn"
/>
/>
<div
style=
"display: flex;align-items: center;"
>
<span
style=
"width: 75px;"
>
类型:
</span>
<q-radio
v-model=
"addMsg.Type"
val=
"1"
label=
"市场"
/>
<q-radio
v-model=
"addMsg.Type"
val=
"2"
label=
"顾问"
/>
<q-radio
v-model=
"addMsg.Type"
val=
"3"
label=
"教师"
/>
</div>
<div
style=
"display: flex;align-items: center;"
>
<span
style=
"width: 75px;"
>
课程类型:
</span>
<q-radio
v-model=
"addMsg.CourseType"
val=
"1"
label=
"包含"
/>
<q-radio
v-model=
"addMsg.CourseType"
val=
"2"
label=
"不包含"
/>
</div>
<div
style=
"margin-top: 10px;"
>
<div
style=
"margin-top: 10px;"
>
...
@@ -99,41 +100,57 @@
...
@@ -99,41 +100,57 @@
/>
/>
</div>
</div>
<div
style=
"display: flex;align-items: center;margin-bottom: 15px;"
>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"EmployeeName"
v-model=
"addMsg.EmpList"
use-chips
use-input
:options=
"myEmployeeList"
label=
"提成人员"
:dense=
"false"
emit-value
multiple
map-options
@
filter=
"filterEmployee"
style=
"flex:1;"
@
input=
'getpersonnel(1)'
/>
<div
class=
"q-gutter-sm"
style=
"margin-right: 18px;"
>
<q-checkbox
v-model=
"personnel"
label=
"全选"
@
input=
'getallpersonnel(1)'
/>
</div>
</div>
<div
style=
"display: flex;align-items: center;margin-bottom: 15px;"
>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"EmployeeName"
v-model=
"addMsg.ChildEmpList"
use-chips
use-input
:options=
"myEmployeeList"
label=
"部门人员"
:dense=
"false"
emit-value
multiple
map-options
@
filter=
"filterEmployee"
style=
"flex:1;"
@
input=
'getpersonnel(2)'
/>
<div
class=
"q-gutter-sm"
style=
"margin-right: 18px;"
>
<q-checkbox
v-model=
"branch"
label=
"全选"
@
input=
'getallpersonnel(2)'
/>
</div>
</div>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"EmployeeName"
v-model=
"addMsg.EmpList"
use-chips
use-input
:options=
"myEmployeeList"
label=
"提成人员"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
multiple
map-options
@
filter=
"filterEmployee"
/>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"EmployeeName"
v-model=
"addMsg.ChildEmpList"
use-chips
use-input
:options=
"myEmployeeList"
label=
"部门人员"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
multiple
map-options
@
filter=
"filterEmployee"
/>
<div
style=
"margin-bottom: 80px;"
>
<div
style=
"margin-bottom: 80px;"
>
<div>
业绩比例
</div>
<div>
业绩比例
</div>
...
@@ -206,10 +223,7 @@
...
@@ -206,10 +223,7 @@
</q-dialog>
</q-dialog>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
queryEmployee
}
from
'../../api/users/user'
import
recruitFormVue
from
'../system/recruit-form.vue'
export
default
{
export
default
{
...
@@ -251,6 +265,8 @@ export default {
...
@@ -251,6 +265,8 @@ export default {
myEmployeeList
:
[],
myEmployeeList
:
[],
allCourseList
:
[],
allCourseList
:
[],
myCourseList
:[],
myCourseList
:[],
personnel
:
false
,
//人员全选
branch
:
false
,
//部门人员
}
}
},
},
created
()
{
created
()
{
...
@@ -264,7 +280,7 @@ export default {
...
@@ -264,7 +280,7 @@ export default {
Name
:
''
,
Name
:
''
,
Type
:
'1'
,
Type
:
'1'
,
CourseType
:
'1'
,
CourseType
:
'1'
,
SchoolIds
:
''
,
SchoolIds
:
[]
,
CourseList
:
[],
//课程列表
CourseList
:
[],
//课程列表
EmpList
:
[],
//提现人员
EmpList
:
[],
//提现人员
ChildEmpList
:
[],
//部门人员
ChildEmpList
:
[],
//部门人员
...
@@ -279,11 +295,9 @@ export default {
...
@@ -279,11 +295,9 @@ export default {
this
.
addMsg
.
Type
=
this
.
addMsg
.
Type
.
toString
()
this
.
addMsg
.
Type
=
this
.
addMsg
.
Type
.
toString
()
this
.
addMsg
.
CourseType
=
this
.
addMsg
.
CourseType
.
toString
()
this
.
addMsg
.
CourseType
=
this
.
addMsg
.
CourseType
.
toString
()
this
.
addMsg
.
SchoolIds
=
this
.
selectData
.
SchoolIds
?
this
.
selectData
.
SchoolIds
.
split
(
','
).
map
(
Number
):[]
;
this
.
addMsg
.
SchoolIds
=
this
.
selectData
.
SchoolIds
?
this
.
selectData
.
SchoolIds
.
split
(
','
).
map
(
Number
):[]
;
console
.
log
(
this
.
addMsg
.
SchoolIds
)
this
.
addMsg
.
CourseList
=
this
.
getId
(
this
.
selectData
.
CourseList
,
2
)
this
.
addMsg
.
CourseList
=
this
.
getId
(
this
.
selectData
.
CourseList
,
2
)
this
.
addMsg
.
EmpList
=
this
.
getId
(
this
.
selectData
.
EmpList
,
3
)
this
.
addMsg
.
EmpList
=
this
.
getId
(
this
.
selectData
.
EmpList
,
3
)
this
.
addMsg
.
ChildEmpList
=
this
.
getId
(
this
.
selectData
.
ChildEmpList
,
3
)
this
.
addMsg
.
ChildEmpList
=
this
.
getId
(
this
.
selectData
.
ChildEmpList
,
3
)
console
.
log
(
this
.
addMsg
)
}
}
},
},
mounted
()
{
mounted
()
{
...
@@ -354,16 +368,7 @@ export default {
...
@@ -354,16 +368,7 @@ export default {
}
else
{
}
else
{
msg
.
SchoolIds
=
this
.
addMsg
.
SchoolIds
.
join
(
','
)
msg
.
SchoolIds
=
this
.
addMsg
.
SchoolIds
.
join
(
','
)
}
}
if
(
this
.
addMsg
.
CourseList
.
length
==
0
)
{
msg
.
CourseList
=
this
.
getList
(
this
.
allCourseList
,
this
.
addMsg
.
CourseList
,
2
,
'CourseId'
,
'CourseName'
)
//课程
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`请选择课程`
,
position
:
'top'
})
return
}
else
{
msg
.
CourseList
=
this
.
getList
(
this
.
allCourseList
,
this
.
addMsg
.
CourseList
,
2
,
'CourseId'
,
'CourseName'
)
}
if
(
this
.
addMsg
.
EmpList
.
length
==
0
)
{
if
(
this
.
addMsg
.
EmpList
.
length
==
0
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
type
:
'negative'
,
type
:
'negative'
,
...
@@ -374,16 +379,7 @@ export default {
...
@@ -374,16 +379,7 @@ export default {
}
else
{
}
else
{
msg
.
EmpList
=
this
.
getList
(
this
.
employeeList
,
this
.
addMsg
.
EmpList
,
3
,)
msg
.
EmpList
=
this
.
getList
(
this
.
employeeList
,
this
.
addMsg
.
EmpList
,
3
,)
}
}
if
(
this
.
addMsg
.
ChildEmpList
.
length
==
0
)
{
msg
.
ChildEmpList
=
this
.
getList
(
this
.
employeeList
,
this
.
addMsg
.
ChildEmpList
,
3
,)
//部门人员
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`请选择部门人员`
,
position
:
'top'
})
return
}
else
{
msg
.
ChildEmpList
=
this
.
getList
(
this
.
employeeList
,
this
.
addMsg
.
ChildEmpList
,
3
,)
}
for
(
let
i
=
0
;
i
<
msg
.
RateList
.
length
;
i
++
){
for
(
let
i
=
0
;
i
<
msg
.
RateList
.
length
;
i
++
){
let
x
=
msg
.
RateList
[
i
]
let
x
=
msg
.
RateList
[
i
]
console
.
log
(
x
.
StartValue
)
console
.
log
(
x
.
StartValue
)
...
@@ -443,7 +439,46 @@ export default {
...
@@ -443,7 +439,46 @@ export default {
}
}
});
});
return
list
return
list
}
},
getallpersonnel
(
type
){
if
(
type
==
1
){
//人员全选
if
(
this
.
personnel
==
true
){
this
.
addMsg
.
EmpList
=
[]
this
.
myEmployeeList
.
forEach
(
x
=>
{
this
.
addMsg
.
EmpList
.
push
(
x
.
Id
)
})
}
else
{
this
.
addMsg
.
EmpList
=
[]
}
}
else
{
//部门人员全选
if
(
this
.
branch
==
true
){
this
.
addMsg
.
ChildEmpList
=
[]
this
.
myEmployeeList
.
forEach
(
x
=>
{
this
.
addMsg
.
ChildEmpList
.
push
(
x
.
Id
)
})
}
else
{
this
.
addMsg
.
ChildEmpList
=
[]
}
}
},
getpersonnel
(
type
){
if
(
type
==
1
){
//人员全选
if
(
this
.
addMsg
.
EmpList
.
length
==
this
.
myEmployeeList
.
length
){
this
.
personnel
=
true
}
else
{
this
.
personnel
=
false
}
}
else
{
//部门人员全选
if
(
this
.
addMsg
.
ChildEmpList
.
length
==
this
.
myEmployeeList
.
length
){
this
.
branch
=
true
}
else
{
this
.
branch
=
false
}
}
},
...
...
src/components/sale/orderlist.vue
View file @
eb90671a
...
@@ -348,7 +348,7 @@
...
@@ -348,7 +348,7 @@
<span
style=
"color: #02C499"
>
{{ item.OrderStateName }}
</span>
<span
style=
"color: #02C499"
>
{{ item.OrderStateName }}
</span>
</div>
</div>
</td>
</td>
<td
style=
"border:none"
v-if=
"viewType == 0"
>
<td
v-if=
"viewType == 0"
>
<
template
<
template
v-if=
"(isEditOrder || AuthorityObj.isShowEdit) && comefrom == 0"
v-if=
"(isEditOrder || AuthorityObj.isShowEdit) && comefrom == 0"
>
>
...
@@ -2822,7 +2822,7 @@ li {
...
@@ -2822,7 +2822,7 @@ li {
}
}
.table-body
{
.table-body
{
height
:
590px
;
/* height: 590px; */
overflow-x
:
hidden
;
overflow-x
:
hidden
;
overflow-y
:
auto
;
overflow-y
:
auto
;
}
}
...
...
src/pages/contractSign.vue
View file @
eb90671a
...
@@ -76,6 +76,11 @@
...
@@ -76,6 +76,11 @@
SetEducationContractSign
,
SetEducationContractSign
,
SetBackClassProtocolSign
SetBackClassProtocolSign
}
from
'../api/sale/contract'
}
from
'../api/sale/contract'
import
{
UploadSelfFile
}
from
'../api/common/common'
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -95,7 +100,7 @@
...
@@ -95,7 +100,7 @@
Type
:
1
,
//1为电子合同签字 2为退课协议签字
Type
:
1
,
//1为电子合同签字 2为退课协议签字
BackMsg
:
{
BackMsg
:
{
Id
:
0
,
Id
:
0
,
sign
:
''
sign
:
''
}
}
};
};
},
},
...
@@ -223,13 +228,75 @@
...
@@ -223,13 +228,75 @@
// _this.basedata = dataurl;
// _this.basedata = dataurl;
_this
.
msg
.
Sign
=
canvas1
.
toDataURL
(
type
);
_this
.
msg
.
Sign
=
canvas1
.
toDataURL
(
type
);
_this
.
BackMsg
.
sign
=
canvas1
.
toDataURL
(
type
);
_this
.
BackMsg
.
sign
=
canvas1
.
toDataURL
(
type
);
let
newArr
=
[];
var
fileName
=
`
${
_this
.
uuid
(
10
,
10
)}
.png`
;
var
path
=
`/assets/sign/`
;
let
configObj
=
{
isOcr
:
1
}
newArr
.
push
(
_this
.
dataURLtoFile
(
_this
.
msg
.
Sign
,
fileName
));
console
.
log
(
newArr
[
0
],
'newArr[0]'
);
UploadSelfFile
(
path
,
newArr
[
0
],
x
=>
{
console
.
log
(
x
,
'xxxxxxx'
);
},
configObj
);
_this
.
SaveMsg
();
_this
.
SaveMsg
();
};
};
};
};
},
},
dataURLtoFile
(
dataurl
,
filename
)
{
//将base64转换为文件
var
arr
=
dataurl
.
split
(
','
),
mime
=
arr
[
0
].
match
(
/:
(
.*
?)
;/
)[
1
],
bstr
=
atob
(
arr
[
1
]),
n
=
bstr
.
length
,
u8arr
=
new
Uint8Array
(
n
);
while
(
n
--
)
{
u8arr
[
n
]
=
bstr
.
charCodeAt
(
n
);
}
return
new
File
([
u8arr
],
filename
,
{
type
:
mime
});
},
uuid
(
len
,
radix
)
{
var
chars
=
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
.
split
(
''
);
var
uuid
=
[],
i
;
radix
=
radix
||
chars
.
length
;
if
(
len
)
{
// Compact form
for
(
i
=
0
;
i
<
len
;
i
++
)
uuid
[
i
]
=
chars
[
0
|
Math
.
random
()
*
radix
];
}
else
{
var
r
;
uuid
[
8
]
=
uuid
[
13
]
=
uuid
[
18
]
=
uuid
[
23
]
=
'-'
;
uuid
[
14
]
=
'4'
;
for
(
i
=
0
;
i
<
36
;
i
++
)
{
if
(
!
uuid
[
i
])
{
r
=
0
|
Math
.
random
()
*
16
;
uuid
[
i
]
=
chars
[(
i
==
19
)
?
(
r
&
0x3
)
|
0x8
:
r
];
}
}
}
return
uuid
.
join
(
''
);
},
//上传图片验证有无签字
uploadFile
(
files
)
{
UploadSelfFile
(
"course"
,
files
[
0
],
(
res
)
=>
{
if
(
res
.
Code
==
1
)
{
}
});
},
//提交数据
//提交数据
SaveMsg
()
{
SaveMsg
()
{
if
(
this
.
Type
==
1
)
{
if
(
this
.
Type
==
1
)
{
console
.
log
(
this
.
msg
,
'msg'
);
console
.
log
(
this
.
base64ToBlob
(
this
.
msg
.
Sign
),
'Sign'
);
return
SetEducationContractSign
(
this
.
msg
).
then
(
res
=>
{
SetEducationContractSign
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
...
@@ -249,7 +316,7 @@
...
@@ -249,7 +316,7 @@
}
}
})
})
}
}
if
(
this
.
Type
==
2
)
{
if
(
this
.
Type
==
2
)
{
SetBackClassProtocolSign
(
this
.
BackMsg
).
then
(
res
=>
{
SetBackClassProtocolSign
(
this
.
BackMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
...
@@ -294,14 +361,14 @@
...
@@ -294,14 +361,14 @@
},
},
//返回上一级
//返回上一级
goback
()
{
goback
()
{
if
(
this
.
Type
==
1
)
{
if
(
this
.
Type
==
1
)
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/contractConfirm'
,
path
:
'/contractConfirm'
,
query
:
{
query
:
{
ContractId
:
this
.
msg
.
ContractId
ContractId
:
this
.
msg
.
ContractId
}
}
});
});
}
else
{
}
else
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/courseRefundH5'
,
path
:
'/courseRefundH5'
,
query
:
{
query
:
{
...
...
src/pages/financial/market/commissionRule.vue
View file @
eb90671a
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
<div
class=
"cycle_Title"
>
市场顾问提成规则
</div>
<div
class=
"cycle_Title"
>
市场顾问提成规则
</div>
<div
<div
class=
"cm_content"
class=
"cm_content"
style=
"width: 100%;margin-bottom:
2
5px;margin-top: 10px;"
style=
"width: 100%;margin-bottom:
3
5px;margin-top: 10px;"
v-for=
" ( item , index ) in dataList "
v-for=
" ( item , index ) in dataList "
:key=
"index"
:key=
"index"
>
>
...
@@ -60,15 +60,15 @@
...
@@ -60,15 +60,15 @@
>
>
<tr>
<tr>
<th
width=
"8%"
>
方案名称
</th>
<th
width=
"8%"
>
方案名称
</th>
<th>
类型
</th>
<th
width=
"5%"
>
类型
</th>
<th
width=
"
200
"
>
校区
</th>
<th
width=
"
15%
"
>
校区
</th>
<th>
课程类型
</th>
<th
width=
"5%"
>
课程类型
</th>
<th
width=
"
300
"
>
课程
</th>
<th
width=
"
25%
"
>
课程
</th>
<th>
首次发放比例
</th>
<th
width=
"7%"
>
首次发放比例
</th>
<th>
课程比例
</th>
<th
width=
"5%"
>
课程比例
</th>
<th>
提成人员
</th>
<th
width=
"10%"
>
提成人员
</th>
<th>
部门人员
</th>
<th
width=
"10%"
>
部门人员
</th>
<th
width=
"10
0
"
>
操作
</th>
<th
width=
"10
%
"
>
操作
</th>
</tr>
</tr>
<tr>
<tr>
<td>
<td>
...
@@ -87,7 +87,18 @@
...
@@ -87,7 +87,18 @@
<span
v-if=
"item.CourseType == 2"
>
不包含
</span>
<span
v-if=
"item.CourseType == 2"
>
不包含
</span>
</td>
</td>
<td
style=
"padding: 0 10px;"
>
<td
style=
"padding: 0 10px;"
>
<span
v-for=
"( son , sIndex ) in item.CourseList"
>
{{
son
.
CourseName
}}{{
item
.
CourseList
.
length
==
sIndex
+
1
?
''
:
'、'
}}
</span>
<span
v-for=
"( son , sIndex ) in item.CourseList"
>
<span
v-if=
"sIndex
<4
"
>
{{
son
.
CourseName
}}{{
item
.
CourseList
.
length
==
sIndex
+
1
?
''
:
'、'
}}
</span>
</span>
<el-popover
v-if=
"item.CourseList.length>=5"
placement=
"top-start"
title=
"课程"
width=
"400"
trigger=
"click"
:content=
"item.CourseListtext"
>
<el-button
slot=
"reference"
style=
"border: none;"
type=
"text"
>
查看更多
</el-button>
</el-popover>
</td>
</td>
<td>
<td>
<span
>
{{
item
.
FirstRate
+
'%'
}}
</span>
<span
>
{{
item
.
FirstRate
+
'%'
}}
</span>
...
@@ -96,10 +107,32 @@
...
@@ -96,10 +107,32 @@
<span
>
{{
item
.
CourseRate
+
'%'
}}
</span>
<span
>
{{
item
.
CourseRate
+
'%'
}}
</span>
</td>
</td>
<td
style=
"padding: 0 10px;"
>
<td
style=
"padding: 0 10px;"
>
<span
v-for=
"( son , sIndex ) in item.EmpList"
>
{{
son
.
EmployeeName
}}{{
item
.
EmpList
.
length
==
sIndex
+
1
?
''
:
'、'
}}
</span>
<span
v-for=
"( son , sIndex ) in item.EmpList"
>
<span
v-if=
"sIndex
<8
"
>
{{
son
.
EmployeeName
}}{{
item
.
EmpList
.
length
==
sIndex
+
1
?
''
:
'、'
}}
</span>
</span>
<el-popover
v-if=
"item.EmpList.length>=9"
placement=
"top-start"
title=
"提成人员"
width=
"400"
trigger=
"click"
:content=
"item.EmpListtext"
>
<el-button
slot=
"reference"
style=
"border: none;"
type=
"text"
>
查看更多
</el-button>
</el-popover>
</td>
</td>
<td
style=
"padding: 0 10px;"
>
<td
style=
"padding: 0 10px;"
>
<span
v-for=
"( son , sIndex ) in item.ChildEmpList"
>
{{
son
.
EmployeeName
}}{{
item
.
ChildEmpList
.
length
==
sIndex
+
1
?
''
:
'、'
}}
</span>
<span
v-for=
"( son , sIndex ) in item.ChildEmpList"
>
<span
v-if=
"sIndex
<8
"
>
{{
son
.
EmployeeName
}}{{
item
.
ChildEmpList
.
length
==
sIndex
+
1
?
''
:
'、'
}}
</span>
</span>
<el-popover
v-if=
"item.ChildEmpList.length>=9"
placement=
"top-start"
title=
"部门人员"
width=
"400"
trigger=
"click"
:content=
"item.ChildEmpListtext"
>
<el-button
slot=
"reference"
style=
"border: none;"
type=
"text"
>
查看更多
</el-button>
</el-popover>
</td>
</td>
<td>
<td>
<q-btn
<q-btn
...
@@ -118,7 +151,7 @@
...
@@ -118,7 +151,7 @@
color=
"negative"
color=
"negative"
style=
"font-weight:400"
style=
"font-weight:400"
label=
"删除"
label=
"删除"
@
click=
"RemoveTask(
props.row
.Id)"
@
click=
"RemoveTask(
item
.Id)"
/>
/>
</td>
</td>
</tr>
</tr>
...
@@ -128,7 +161,6 @@
...
@@ -128,7 +161,6 @@
style=
"border:1px solid #E6E6E6;"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellspacing=
"0"
cellpadding=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
>
<tr>
<tr>
<th
>
业绩比例
</th>
<th
>
业绩比例
</th>
...
@@ -140,14 +172,13 @@
...
@@ -140,14 +172,13 @@
style=
"border:1px solid #E6E6E6;"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellspacing=
"0"
cellpadding=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
>
<tr>
<tr>
<th
style=
"min-width: 260px;"
<th
style=
"min-width: 260px;"
v-for=
"( son , sIndex ) in item.RateList"
v-for=
"( son , sIndex ) in item.RateList"
:key=
"sIndex"
:key=
"sIndex"
>
{{
son
.
StartValue
}}
{{
'<业绩<='
}}{{
son
.
EndValue
}}
</th>
>
{{
son
.
StartValue
}}
<span>
{{
son
.
EndValue
&&
son
.
EndValue
!=-
1
?
'<业绩<='
:
'<业绩'
}}
</span><span
v-if=
"son.EndValue && son.EndValue!=-1"
>
{{
son
.
EndValue
}}
</span>
</th>
</tr>
</tr>
<tr
style=
"width: 1040px;overflow-x: auto;"
>
<tr
style=
"width: 1040px;overflow-x: auto;"
>
<td
style=
"min-width: 260px;"
v-for=
"( son , sIndex ) in item.RateList"
:key=
"sIndex"
>
{{
son
.
Rate
}}
%
</td>
<td
style=
"min-width: 260px;"
v-for=
"( son , sIndex ) in item.RateList"
:key=
"sIndex"
>
{{
son
.
Rate
}}
%
</td>
...
@@ -188,7 +219,8 @@ import {
...
@@ -188,7 +219,8 @@ import {
}
from
'../../../api/course/index'
}
from
'../../../api/course/index'
import
{
import
{
getSellAchievementsRuleList
,
getSellAchievementsRuleList
,
setSellAchievementsRule
setSellAchievementsRule
,
delSellAchievementsRule
}
from
'../../../api/finance/index'
}
from
'../../../api/finance/index'
import
{
import
{
getSchoolDropdown
,
getSchoolDropdown
,
...
@@ -239,7 +271,30 @@ export default {
...
@@ -239,7 +271,30 @@ export default {
this
.
loading
=
true
;
this
.
loading
=
true
;
getSellAchievementsRuleList
({}).
then
(
res
=>
{
getSellAchievementsRuleList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
this
.
dataList
=
res
.
Data
;
this
.
dataList
.
forEach
(
j
=>
{
if
(
j
.
ChildEmpList
.
length
>=
9
){
//人员
j
.
ChildEmpListtext
=
''
;
j
.
ChildEmpList
.
forEach
(
x
=>
{
j
.
ChildEmpListtext
=
j
.
ChildEmpListtext
+
x
.
EmployeeName
+
'、'
})
}
if
(
j
.
EmpList
.
length
>=
9
){
//部门人员
j
.
EmpListtext
=
''
;
j
.
EmpList
.
forEach
(
x
=>
{
j
.
EmpListtext
=
j
.
EmpListtext
+
x
.
EmployeeName
+
'、'
})
}
if
(
j
.
CourseList
.
length
>=
5
){
//课程
j
.
CourseListtext
=
''
;
j
.
CourseList
.
forEach
(
x
=>
{
j
.
CourseListtext
=
j
.
CourseListtext
+
x
.
CourseName
+
'、'
})
}
})
}
}
this
.
loading
=
false
this
.
loading
=
false
})
})
...
@@ -274,7 +329,6 @@ export default {
...
@@ -274,7 +329,6 @@ export default {
refreshList
(
data
)
{
//保存规则
refreshList
(
data
)
{
//保存规则
console
.
log
(
this
.
dataList
,
'datalist'
)
setSellAchievementsRule
(
data
).
then
(
res
=>
{
setSellAchievementsRule
(
data
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
...
@@ -302,6 +356,34 @@ export default {
...
@@ -302,6 +356,34 @@ export default {
this
.
isAdd
=
false
;
this
.
isAdd
=
false
;
},
},
RemoveTask
(
Id
){
//删除
let
delMsg
=
{
RuleId
:
Id
};
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'是否确定删除?'
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
delSellAchievementsRule
(
delMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'删除成功!'
,
position
:
'top'
})
this
.
getSellAchievementsRuleList
();
}
})
}).
onCancel
(()
=>
{
});
},
closeForm
()
{
closeForm
()
{
this
.
persistent
=
false
;
this
.
persistent
=
false
;
...
...
src/pages/sale/myOrder.vue
View file @
eb90671a
...
@@ -9,43 +9,43 @@
...
@@ -9,43 +9,43 @@
<div
class=
"page-search row items-center"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.OrderId"
label=
"订单号"
<q-input
@
change=
"resetSearch"
clearable
dense
standout=
"bg-primary text-white"
v-model=
"msg.OrderId"
label=
"订单号"
@
clear=
"resetSearch"
maxlength=
"10"
/>
@
clear=
"resetSearch"
maxlength=
"10"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
v-model=
"msg.CourseSubject"
<q-select
@
input=
"resetSearch"
dense
standout=
"bg-primary text-white"
v-model=
"msg.CourseSubject"
:options=
"CourseSubjectList"
option-label=
"SubjectName"
option-value=
"Id"
emit-value
map-options
:options=
"CourseSubjectList"
option-label=
"SubjectName"
option-value=
"Id"
emit-value
map-options
label=
"所属科目"
clearable
/>
label=
"所属科目"
clearable
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.GuestName"
label=
"客户名称"
<q-input
@
change=
"resetSearch"
dense
clearable
standout=
"bg-primary text-white"
v-model=
"msg.GuestName"
label=
"客户名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassName"
label=
"班级名称"
<q-input
@
change=
"resetSearch"
dense
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassName"
label=
"班级名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
option-value=
"CourseId"
<q-select
@
input=
"resetSearch"
dense
standout=
"bg-primary text-white"
option-value=
"CourseId"
option-label=
"CourseName"
v-model=
"msg.CouseId"
:options=
"CourseList"
emit-value
map-options
label=
"学习课程"
/>
option-label=
"CourseName"
v-model=
"msg.CouseId"
:options=
"CourseList"
emit-value
map-options
label=
"学习课程"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"msg.OrderState==0?(msg.Q_OrderState = 1):msg.Q_OrderState=0,resetSearch()"
<q-select
dense
@
input=
"msg.OrderState==0?(msg.Q_OrderState = 1):msg.Q_OrderState=0,resetSearch()"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.OrderState"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.OrderState"
:options=
"OrderStateList"
emit-value
map-options
label=
"订单状态"
/>
:options=
"OrderStateList"
emit-value
map-options
label=
"订单状态"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-field
filled
>
<q-field
filled
dense
>
<template
v-slot:control
>
<template
v-slot:control
>
<el-date-picker
v-model=
"dateList"
@
change=
"resetSearch()"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
<el-date-picker
v-model=
"dateList"
@
change=
"resetSearch()"
size=
"mini"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"报名开始时间"
end-placeholder=
"报名结束时间"
/>
range-separator=
"至"
start-placeholder=
"报名开始时间"
end-placeholder=
"报名结束时间"
/>
</
template
>
</
template
>
</q-field>
</q-field>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-field
filled
>
<q-field
filled
dense
>
<
template
v-slot:control
>
<
template
v-slot:control
>
<el-date-picker
v-model=
"dateList2"
@
change=
"resetSearch()"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
<el-date-picker
v-model=
"dateList2"
@
change=
"resetSearch()"
size=
"mini"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"开班开始时间"
end-placeholder=
"开班结束时间"
/>
range-separator=
"至"
start-placeholder=
"开班开始时间"
end-placeholder=
"开班结束时间"
/>
</
template
>
</
template
>
</q-field>
</q-field>
...
...
src/pages/sale/orderStatistics.vue
View file @
eb90671a
...
@@ -15,37 +15,37 @@
...
@@ -15,37 +15,37 @@
<div
class=
"page-search row items-center"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.OrderId"
label=
"订单号"
<q-input
@
change=
"resetSearch"
clearable
dense
standout=
"bg-primary text-white"
v-model=
"msg.OrderId"
label=
"订单号"
@
clear=
"resetSearch"
maxlength=
"10"
/>
@
clear=
"resetSearch"
maxlength=
"10"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
v-model=
"msg.CourseSubject"
<q-select
@
input=
"resetSearch"
dense
standout=
"bg-primary text-white"
v-model=
"msg.CourseSubject"
:options=
"CourseSubjectList"
option-label=
"SubjectName"
option-value=
"Id"
emit-value
map-options
label=
"所属科目"
:options=
"CourseSubjectList"
option-label=
"SubjectName"
option-value=
"Id"
emit-value
map-options
label=
"所属科目"
clearable
/>
clearable
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.GuestName"
label=
"学生名称"
<q-input
@
change=
"resetSearch"
dense
clearable
standout=
"bg-primary text-white"
v-model=
"msg.GuestName"
label=
"学生名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassName"
label=
"班级名称"
<q-input
@
change=
"resetSearch"
dense
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassName"
label=
"班级名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassNo"
label=
"班号"
<q-input
@
change=
"resetSearch"
dense
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassNo"
label=
"班号"
@
clear=
"resetSearch"
maxlength=
"20"
/>
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
option-value=
"CourseId"
<q-select
@
input=
"resetSearch"
dense
standout=
"bg-primary text-white"
option-value=
"CourseId"
option-label=
"CourseName"
v-model=
"msg.CouseId"
:options=
"CourseList"
emit-value
map-options
label=
"学习课程"
/>
option-label=
"CourseName"
v-model=
"msg.CouseId"
:options=
"CourseList"
emit-value
map-options
label=
"学习课程"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"msg.OrderState==0?(msg.Q_OrderState = 1):msg.Q_OrderState=0,resetSearch()"
<q-select
dense
@
input=
"msg.OrderState==0?(msg.Q_OrderState = 1):msg.Q_OrderState=0,resetSearch()"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.OrderState"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.OrderState"
:options=
"OrderStateList"
emit-value
map-options
label=
"订单状态"
/>
:options=
"OrderStateList"
emit-value
map-options
label=
"订单状态"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-field
filled
>
<q-field
filled
dense
>
<template
v-slot:control
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.StartTime"
type=
"date"
placeholder=
"报名开始时间"
size=
"small"
style=
"width:47%;"
<el-date-picker
v-model=
"msg.StartTime"
type=
"date"
placeholder=
"报名开始时间"
size=
"small"
style=
"width:47%;"
@
change=
"resetSearch"
clear-icon=
"iconfont icon-guanbi"
>
@
change=
"resetSearch"
clear-icon=
"iconfont icon-guanbi"
>
...
@@ -60,21 +60,21 @@
...
@@ -60,21 +60,21 @@
</q-field>
</q-field>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-field
filled
>
<q-field
filled
dense
>
<
template
v-slot:control
>
<
template
v-slot:control
>
<el-date-picker
v-model=
"dateList2"
@
change=
"resetSearch()"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
<el-date-picker
v-model=
"dateList2"
@
change=
"resetSearch()"
size=
"mini"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"开班开始时间"
end-placeholder=
"开班结束时间"
>
range-separator=
"至"
start-placeholder=
"开班开始时间"
end-placeholder=
"开班结束时间"
>
</el-date-picker>
</el-date-picker>
</
template
>
</
template
>
</q-field>
</q-field>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"EmployeeName"
<q-select
@
input=
"resetSearch"
dense
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"EmployeeName"
v-model=
"msg.EnterID"
:options=
"EmployeeList"
emit-value
map-options
label=
"业务员"
use-input
v-model=
"msg.EnterID"
:options=
"EmployeeList"
emit-value
map-options
label=
"业务员"
use-input
@
filter=
"filterFn2"
/>
@
filter=
"filterFn2"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"EmployeeName"
<q-select
@
input=
"resetSearch"
dense
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"EmployeeName"
v-model=
"msg.HelpEnterId"
:options=
"TeacherList"
emit-value
map-options
label=
"关联教师"
use-input
v-model=
"msg.HelpEnterId"
:options=
"TeacherList"
emit-value
map-options
label=
"关联教师"
use-input
@
filter=
"filterFn3"
/>
@
filter=
"filterFn3"
/>
</div>
</div>
...
...
src/pages/sale/studyOrder.vue
View file @
eb90671a
...
@@ -9,21 +9,21 @@
...
@@ -9,21 +9,21 @@
<div
class=
"page-search row items-center"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.OrderId"
label=
"订单号"
<q-input
@
change=
"resetSearch"
clearable
dense
standout=
"bg-primary text-white"
v-model=
"msg.OrderId"
label=
"订单号"
@
clear=
"resetSearch"
maxlength=
"10"
/>
@
clear=
"resetSearch"
maxlength=
"10"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.GuestName"
label=
"客户名称"
<q-input
@
change=
"resetSearch"
clearable
dense
standout=
"bg-primary text-white"
v-model=
"msg.GuestName"
label=
"客户名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"msg.OrderState==0?(msg.Q_OrderState = 1):msg.Q_OrderState=0,resetSearch()"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
<q-select
dense
@
input=
"msg.OrderState==0?(msg.Q_OrderState = 1):msg.Q_OrderState=0,resetSearch()"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.OrderState"
:options=
"OrderStateList"
emit-value
map-options
label=
"订单状态"
/>
v-model=
"msg.OrderState"
:options=
"OrderStateList"
emit-value
map-options
label=
"订单状态"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-field
filled
>
<q-field
filled
dense
>
<template
v-slot:control
>
<template
v-slot:control
>
<el-date-picker
v-model=
"dateList"
@
change=
"resetSearch()"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
<el-date-picker
v-model=
"dateList"
size=
"mini"
@
change=
"resetSearch()"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"报名开始时间"
end-placeholder=
"报名结束时间"
>
range-separator=
"至"
start-placeholder=
"报名开始时间"
end-placeholder=
"报名结束时间"
>
</el-date-picker>
</el-date-picker>
</
template
>
</
template
>
...
...
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