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
f39a0325
Commit
f39a0325
authored
Dec 14, 2021
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
a99e2d9d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
485 additions
and
288 deletions
+485
-288
sale.js
src/api/sale/sale.js
+8
-1
editOrder-form.vue
src/components/sale/editOrder-form.vue
+8
-3
stulist.vue
src/components/school/student/stulist.vue
+279
-182
japaneseTrain.vue
src/pages/sale/japaneseTrain.vue
+2
-0
mystu.vue
src/pages/sale/mystu.vue
+188
-102
No files found.
src/api/sale/sale.js
View file @
f39a0325
...
...
@@ -403,4 +403,11 @@ export function GetAssistTypeList(data) {
});
}
// 获取学生是否续费
export
function
getOrderGuestRenewState
(
data
)
{
return
request
({
url
:
'/order/GetOrderGuestRenewState'
,
method
:
'post'
,
data
});
}
src/components/sale/editOrder-form.vue
View file @
f39a0325
...
...
@@ -442,14 +442,15 @@
this.OrderMsg.CourseId = '';
}
if(this.saveObj.B2CRatio){
this.OrderMsg.B2CRatio = this.saveObj.B2CRatio;
this.OrderMsg.B2CRatio = this.saveObj.B2CRatio
>1?this.saveObj.B2CRatio/100:this.saveObj.B2CRatio
;
}
if(this.saveObj.B2CReNewRatio){
this.OrderMsg.B2CReNewRatio = this.saveObj.B2CReNewRatio;
this.OrderMsg.B2CReNewRatio = this.saveObj.B2CReNewRatio
>1?this.saveObj.B2CReNewRatio/100:this.saveObj.B2CReNewRatio
;
}
}
this.IsShowEditOrder = true;
this.calcPrice();
console.log("this.saveObj",this.saveObj)
}
},
//筛选员工
...
...
@@ -463,7 +464,7 @@
}
})
},
//筛选
市场专员
//筛选
同行
cusfilterFn(val, update) {
update(() => {
if (val === '') {
...
...
@@ -601,6 +602,10 @@
getMyCustomerList({}).then(res=>{
this.myCustomerList=res.Data
this.allCustomerList=res.Data
this.myCustomerList.unshift({
CustomerId:0,
CustomerName:"不限"
})
})
}
}
...
...
src/components/school/student/stulist.vue
View file @
f39a0325
This diff is collapsed.
Click to expand it.
src/pages/sale/japaneseTrain.vue
View file @
f39a0325
...
...
@@ -564,6 +564,8 @@
this
.
orderObj
.
ClassId
=
item
.
ClassId
;
this
.
orderObj
.
Unit_Price
=
item
.
SellPrice
;
this
.
orderObj
.
CourseId
=
item
.
CouseId
;
this
.
orderObj
.
B2CRatio
=
item
.
B2CRatio
;
this
.
orderObj
.
B2CReNewRatio
=
item
.
B2CReNewRatio
;
this
.
isShowEditOrderForm
=
true
;
},
//跳转到课程大纲
...
...
src/pages/sale/mystu.vue
View file @
f39a0325
...
...
@@ -3,137 +3,223 @@
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
filled
v-model=
"msg.StuName"
label=
"昵称"
maxlength=
"20"
/>
<q-input
@
input=
"resetSearch"
clearable
filled
v-model=
"msg.StuName"
label=
"昵称"
maxlength=
"20"
/>
</div>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
filled
v-model=
"msg.StuTel"
label=
"电话"
maxlength=
"20"
/>
<q-input
@
input=
"resetSearch"
clearable
filled
v-model=
"msg.StuTel"
label=
"电话"
maxlength=
"20"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
filled
v-model=
"msg.StuStage"
:options=
"customState"
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
label=
"客户状态"
clearable
/>
<q-select
@
input=
"resetSearch"
filled
v-model=
"msg.StuStage"
:options=
"customState"
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
label=
"客户状态"
clearable
/>
</div>
<div
class=
"col-3"
>
<q-field
filled
>
<template
v-slot:control
>
<el-date-picker
v-model=
"dateArray"
@
change=
"resetSearch"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"开始时间"
end-placeholder=
"结束时间"
/>
<template
v-slot:control
>
<el-date-picker
v-model=
"dateArray"
@
change=
"resetSearch"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"开始时间"
end-placeholder=
"结束时间"
/>
</
template
>
</q-field>
</div>
</div>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"新增客户"
@
click=
"EditStudent(null)"
/>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
v-model=
"msg.CustomerId"
:options=
"myCustomerList"
filled
use-input
label=
"同行"
option-label=
"CustomerName"
option-value=
"CustomerId"
ref=
"CustomerName"
class=
"col-6 q-pb-lg"
emit-value
map-options
@
filter=
"cusfilterFn"
>
<
template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
未找到相关数据
</q-item-section>
</q-item>
</
template
>
</q-select>
</div>
</div>
</div>
<div
class=
"page-content"
>
<stulist
:dataList=
"data"
@
success=
"refreshPage"
ref=
"stuList"
>
</stulist>
<stulist
:dataList=
"data"
@
success=
"refreshPage"
ref=
"stuList"
>
</stulist>
<div
class=
"row"
style=
"justify-content: flex-end;padding: 5px 20px"
>
<q-pagination
v-model=
"msg.pageIndex"
:max=
"pageCount"
@
input=
"changePage"
class=
"full-width justify-end"
color=
"primary"
:input=
"true"
>
<q-pagination
v-model=
"msg.pageIndex"
:max=
"pageCount"
@
input=
"changePage"
class=
"full-width justify-end"
color=
"primary"
:input=
"true"
>
</q-pagination>
</div>
</div>
</div>
</template>
<
script
>
import
{
getStudentPage
,
getSchoolDropdown
,
deleteStudent
,
createStudentAccount
,
queryStuStageList
}
from
'../../api/school/index'
import
{
queryEmployee
}
from
'../../api/users/user'
import
{
resetPassword
}
from
'../../api/users/user.js'
import
{
getStudentPage
,
getSchoolDropdown
,
deleteStudent
,
createStudentAccount
,
queryStuStageList
}
from
"../../api/school/index"
;
import
{
queryEmployee
}
from
"../../api/users/user"
;
import
{
resetPassword
}
from
"../../api/users/user.js"
;
import
stulist
from
'../../components/school/student/stulist'
export
default
{
meta
:
{
title
:
"客户管理"
import
stulist
from
"../../components/school/student/stulist"
;
import
{
getMyCustomerList
}
from
"../../api/sale/sale"
;
export
default
{
meta
:
{
title
:
"客户管理"
},
components
:
{
stulist
},
data
()
{
return
{
currentUrl
:
""
,
data
:
[],
loading
:
true
,
msg
:
{
pageIndex
:
1
,
pageSize
:
12
,
rowsPerPage
:
12
,
StuName
:
""
,
StuTel
:
""
,
Status
:
"-1"
,
CreateBy
:
""
,
IsQueryMyStu
:
1
,
StuStage
:
""
,
//客户阶段
StartTime
:
""
,
//开始时间
EndTime
:
""
,
//结束时间
CustomerId
:
0
},
dateArray
:
[],
//日期数组
pageCount
:
0
,
//客户阶段状态列表
customState
:
[],
myCustomerList
:
[],
//同行列表
allCustomerList
:
[]
//所有同行列表
};
},
created
()
{
this
.
getSchool
();
this
.
getStuStageList
();
},
mounted
()
{
this
.
currentUrl
=
this
.
$route
.
path
;
this
.
getStudent
();
this
.
getCustomerList
();
},
methods
:
{
//获取客户阶段列表
getStuStageList
()
{
queryStuStageList
().
then
(
res
=>
{
this
.
customState
=
res
.
Data
;
});
},
components
:
{
stulist
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getStudent
();
},
data
()
{
return
{
currentUrl
:
""
,
data
:
[],
loading
:
true
,
msg
:
{
pageIndex
:
1
,
pageSize
:
12
,
rowsPerPage
:
12
,
StuName
:
""
,
StuTel
:
""
,
Status
:
"-1"
,
CreateBy
:
""
,
IsQueryMyStu
:
1
,
StuStage
:
""
,
//客户阶段
StartTime
:
""
,
//开始时间
EndTime
:
""
,
//结束时间
},
dateArray
:
[],
//日期数组
pageCount
:
0
,
//客户阶段状态列表
customState
:
[],
}
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getStudent
();
},
created
()
{
this
.
getSchool
();
this
.
getStuStageList
();
getSchool
()
{
getSchoolDropdown
({}).
then
(
res
=>
{
this
.
schoolList
=
res
.
Data
;
});
},
mounted
()
{
this
.
currentUrl
=
this
.
$route
.
path
this
.
getStudent
()
},
methods
:
{
//获取客户阶段列表
getStuStageList
()
{
queryStuStageList
().
then
(
res
=>
{
this
.
customState
=
res
.
Data
;
})
},
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getStudent
()
},
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getStudent
();
},
getSchool
()
{
getSchoolDropdown
({}).
then
(
res
=>
{
this
.
schoolList
=
res
.
Data
;
getStudent
()
{
if
(
this
.
dateArray
&&
this
.
dateArray
.
length
>
0
)
{
this
.
msg
.
StartTime
=
this
.
dateArray
[
0
];
this
.
msg
.
EndTime
=
this
.
dateArray
[
1
];
}
else
{
this
.
msg
.
StartTime
=
""
;
this
.
msg
.
EndTime
=
""
;
}
this
.
loading
=
true
;
getStudentPage
(
this
.
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
this
.
data
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
})
},
getStudent
()
{
if
(
this
.
dateArray
&&
this
.
dateArray
.
length
>
0
)
{
this
.
msg
.
StartTime
=
this
.
dateArray
[
0
];
this
.
msg
.
EndTime
=
this
.
dateArray
[
1
];
}
else
{
this
.
msg
.
StartTime
=
''
;
this
.
msg
.
EndTime
=
''
;
}
this
.
loading
=
true
;
getStudentPage
(
this
.
msg
).
then
(
res
=>
{
.
catch
(()
=>
{
this
.
loading
=
false
;
this
.
data
=
res
.
Data
.
PageData
this
.
pageCount
=
res
.
Data
.
PageCount
}).
catch
(()
=>
{
this
.
loading
=
false
});
},
refreshPage
()
{
this
.
getStudent
();
},
getCustomerList
()
{
getMyCustomerList
({}).
then
(
res
=>
{
this
.
myCustomerList
=
res
.
Data
;
this
.
allCustomerList
=
res
.
Data
;
this
.
myCustomerList
.
unshift
({
CustomerName
:
"不限"
,
CustomerId
:
0
,
})
},
refreshPage
()
{
this
.
getStudent
()
},
});
},
cusfilterFn
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
myCustomerList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allCustomerList
)
);
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
myCustomerList
=
this
.
allCustomerList
.
filter
(
v
=>
v
.
CustomerName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
}
}
};
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
\ No newline at end of file
@import
url('~assets/css/table.sass')
</
style
>
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