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
4cf4355a
Commit
4cf4355a
authored
May 17, 2022
by
罗超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
3d713c9f
642688ac
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
797 additions
and
289 deletions
+797
-289
sale.js
src/api/sale/sale.js
+12
-0
wechat.js
src/api/system/wechat.js
+12
-0
activeOrder-form.vue
src/components/sale/activeOrder-form.vue
+34
-20
activeOrder-item.vue
src/components/sale/activeOrder-item.vue
+3
-0
transfer-order.vue
src/components/school/student/transfer-order.vue
+8
-5
order-form.vue
src/components/school/student/transfer-order/order-form.vue
+419
-46
activeSignUpList.vue
src/pages/activity/activeSignUpList.vue
+161
-203
empBonusDetail.vue
src/pages/financial/market/empBonusDetail.vue
+20
-4
orderStatistics.vue
src/pages/sale/orderStatistics.vue
+14
-8
sysuser.vue
src/pages/school/sysuser.vue
+114
-3
No files found.
src/api/sale/sale.js
View file @
4cf4355a
...
...
@@ -34,6 +34,18 @@ export function setClassOrder(data) {
})
}
/**
* 新增 多个约课订单
*
*/
export
function
SetClassOrderBatch
(
data
)
{
return
request
({
url
:
'/order/SetClassOrderBatch'
,
method
:
'post'
,
data
})
}
/**
* 销售 我的订单
*
...
...
src/api/system/wechat.js
View file @
4cf4355a
...
...
@@ -566,6 +566,18 @@ export function SetSynvEduEmployee(data) {
})
}
/**
* 离职人员交接订单
*
*/
export
function
SetUserLeaveOrderCareOf
(
data
)
{
return
request
({
url
:
'/user/SetUserLeaveOrderCareOf'
,
method
:
'post'
,
data
})
}
/**
* 获取客户添加方式枚举
*/
...
...
src/components/sale/activeOrder-form.vue
View file @
4cf4355a
...
...
@@ -8,7 +8,8 @@
padding
:
5px
10px
;
align-items
:
center
;
}
.disableStatus
{
.disableStatus
{
opacity
:
0.3
!important
;
cursor
:
auto
;
}
...
...
@@ -33,9 +34,10 @@
v-model=
"OrderMsg.LinkTel"
class=
"col-12"
ref=
"LinkTel"
label=
"联系电话"
:rules=
"[val => !!val || '请填写联系电话']"
/>
<q-select
standout=
"bg-primary text-white"
v-model=
"OrderMsg.Sex"
class=
"col-12 q-mb-lg"
:options=
"sexList"
:disable=
"isdisable"
emit-value
map-options
label=
"性别"
option-value=
"Id"
option-label=
"name"
/>
<!--
<q-input
filled
stack-label
maxlength=
"30"
:dense=
"false"
type=
"number"
v-model=
"OrderMsg.PeopleNum"
class=
"col-12"
:min=
"1"
label=
"人数"
:rules=
"[val => !!val || '请填写人数']"
/>
-->
<q-select
standout=
"bg-primary text-white"
v-model=
"OrderMsg.TeacherId"
class=
"col-12 q-mb-lg"
:options=
"TeacherList"
clearable
emit-value
map-options
label=
"教师"
option-value=
"TId"
option-label=
"TeacherName"
/>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"OrderMsg.Remark"
style=
"margin-top: 20px"
type=
"textarea"
class=
"col-12 q-mb-lg"
ref=
"Remark"
label=
"备注"
/>
...
...
@@ -47,8 +49,9 @@
</div>
<div
style=
"margin:30px 10px 70px 0;"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"closeEditOrder"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"保存"
v-if=
"saveObj.PaymentWay!==1&&saveObj.Status!==1"
@
click=
"saveOrderInfo()"
/>
<q-btn
color=
"accent disableStatus"
class=
"q-mr-md"
v-else
label=
"保存"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"保存"
v-if=
"saveObj.PaymentWay!==1&&saveObj.Status!==1"
@
click=
"saveOrderInfo()"
/>
<q-btn
color=
"accent disableStatus"
class=
"q-mr-md"
v-else
label=
"保存"
/>
</div>
</div>
</q-card>
...
...
@@ -59,6 +62,9 @@
</q-dialog>
</
template
>
<
script
>
import
{
getTeacherDropDownList
}
from
'../../api/school/index'
export
default
{
props
:
{
saveObj
:
{
...
...
@@ -88,6 +94,7 @@
PayWay
:
0
,
//付款方式
TenantId
:
0
,
//商户id
MallBaseId
:
0
,
//小程序id
TeacherId
:
""
,
//教师编号
},
stuList
:
[],
//学员列表
loginId
:
-
1
,
//登录人id
...
...
@@ -100,9 +107,13 @@
name
:
"女"
}
],
TeacherList
:
[],
//教师列表
isdisable
:
false
,
}
},
created
()
{
this
.
getTeacherList
();
},
mounted
()
{
let
data
=
JSON
.
parse
(
localStorage
.
getItem
(
"loginUserInfo"
)).
data
this
.
loginId
=
data
.
Id
...
...
@@ -121,15 +132,23 @@
}
this
.
OrderMsg
.
LinkMan
=
this
.
saveObj
.
LinkMan
this
.
OrderMsg
.
LinkTel
=
this
.
saveObj
.
LinkTel
this
.
OrderMsg
.
Remark
=
this
.
saveObj
.
Remark
this
.
OrderMsg
.
Remark
=
this
.
saveObj
.
Remark
;
this
.
OrderMsg
.
TeacherId
=
this
.
saveObj
.
TeacherId
;
}
this
.
getStu
();
},
watch
:
{
},
methods
:
{
//获取教师列表
getTeacherList
()
{
getTeacherDropDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
}
})
},
//关闭弹窗
closeEditOrder
()
{
this
.
IsShowEditOrder
=
false
;
...
...
@@ -138,14 +157,10 @@
saveOrderInfo
()
{
this
.
$refs
.
LinkMan
.
validate
();
this
.
$refs
.
LinkTel
.
validate
();
// this.$refs.Remark.validate();
if
(
!
this
.
$refs
.
LinkMan
.
hasError
&&
!
this
.
$refs
.
LinkTel
.
hasError
)
{
// if(this.saveObj.LnsideLimit===1&&!this.OrderMsg.EduStudentId){
// this.Error("请选择学员");
// return
// }
if
(
this
.
OrderMsg
.
EduStudentId
===
null
||
!
this
.
OrderMsg
.
EduStudentId
)
{
this
.
OrderMsg
.
EduStudentId
=
0
}
...
...
@@ -167,11 +182,11 @@
},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
let
data
=
res
.
data
.
data
this
.
stuList
=
data
.
map
(
item
=>
{
if
(
item
.
StuSex
===
0
)
{
item
.
StuSex
=
1
}
else
if
(
item
.
StuSex
===
1
)
{
item
.
StuSex
=
2
this
.
stuList
=
data
.
map
(
item
=>
{
if
(
item
.
StuSex
===
0
)
{
item
.
StuSex
=
1
}
else
if
(
item
.
StuSex
===
1
)
{
item
.
StuSex
=
2
}
return
item
})
...
...
@@ -197,5 +212,4 @@
}
}
}
</
script
>
</
script
>
\ No newline at end of file
src/components/sale/activeOrder-item.vue
View file @
4cf4355a
...
...
@@ -67,6 +67,9 @@
<div>
{{
item
.
StartTime
}}
</div>
<div>
活动结束时间:
</div>
<div>
{{
item
.
EndTime
}}
</div>
<div
v-if=
"item.TeacherName"
style=
"font-weight: bold; color: #2961fe;"
>
协助老师:
{{
item
.
TeacherName
}}
</div>
<div
v-if=
"item.IsCommission == 2"
style=
"color: #f00; cursor: pointer; text-decoration: underline"
@
click=
"gourlactive(item)"
>
提成金额:
{{
item
.
CommissionPrice
}}
...
...
src/components/school/student/transfer-order.vue
View file @
4cf4355a
...
...
@@ -65,7 +65,7 @@
:max=
"coursePageCount"
:input=
"true"
@
input=
"changePage"
/>
</template>
<
template
v-if=
"mode == 2"
>
<yueke
@
select=
"selectCourse"
:select=
"
defaultCourse
"
></yueke>
<yueke
@
select=
"selectCourse"
:select=
"
selectedCourseList
"
></yueke>
</
template
>
<
template
v-if=
"mode == 3"
>
<vipcourse
ref=
"vipCourse"
@
success=
"$emit('close')"
:stuData=
"stuData"
></vipcourse>
...
...
@@ -73,7 +73,7 @@
</q-step>
<q-step
:name=
"3"
title=
"确认"
icon=
"settings"
:done=
"step > 3"
>
<orderForm
ref=
"orderForm"
:mode=
"mode"
:schoolList=
"schoolList"
:save-obj=
"saveObj"
:stuData=
"stuData"
:modityOrderType=
"1"
:
defaultCourse=
"defaultCourse
"
@
success=
"$emit('close')"
@
cancelloading=
"cancelloading"
></orderForm>
:modityOrderType=
"1"
:
selectedCourseList=
"selectedCourseList
"
@
success=
"$emit('close')"
@
cancelloading=
"cancelloading"
></orderForm>
</q-step>
</q-stepper>
</q-card-section>
...
...
@@ -188,7 +188,8 @@
myClassList
:
[],
allClassList
:
[],
loading1
:
false
,
//防止多次点击
mode
:
1
mode
:
1
,
selectedCourseList
:[],
//多选课程
};
},
mounted
()
{
...
...
@@ -284,6 +285,7 @@
},
// 选择班级
selectClass
(
val
)
{
this
.
selectedCourseList
=
[]
if
(
val
.
length
>
0
)
{
this
.
saveObj
=
val
[
0
];
this
.
saveObj
.
Unit_Price
=
this
.
saveObj
.
SellPrice
;
...
...
@@ -296,14 +298,15 @@
},
// 选择课程
selectCourse
(
val
)
{
this
.
selectedCourseList
=
[]
if
(
val
.
length
>
0
)
{
this
.
saveObj
=
val
[
0
];
this
.
saveObj
.
Unit_Price
=
this
.
saveObj
.
SellPrice
;
this
.
defaultCourse
=
val
;
this
.
selectedCourseList
=
val
;
}
else
{
this
.
saveObj
=
{};
this
.
saveObj
.
Unit_Price
=
0
;
this
.
defaultCourse
=
[];
this
.
selectedCourseList
=
[];
}
},
next
()
{
...
...
src/components/school/student/transfer-order/order-form.vue
View file @
4cf4355a
...
...
@@ -4,14 +4,10 @@
<div
class=
"q-mb-sm text-accent"
>
<span
class=
"text-primary"
v-if=
"mode === 1"
>
班级:
</span>
<span
v-if=
"mode === 1"
>
{{
saveObj
.
ClassName
}}
</span>
<span
class=
"q-ml-md text-primary"
>
课程:
</span>
{{
saveObj
.
CourseName
}}
<!--
<span></span>
-->
<!--
<span
v-else
>
<span
class=
"yueke-CourseName"
v-for=
"(item,index) in defaultCourse"
>
<span>
{{
index
+
1
}}
、
</span>
{{
item
.
CourseName
}}
</span>
</span>
-->
<span
v-if=
"mode!=2&&selectedCourseList.length==0||selectedCourseList.length==1"
>
<span
class=
"q-ml-md text-primary"
>
课程:
</span>
{{
saveObj
.
CourseName
}}
</span>
</div>
<div
class=
"row q-mb-md"
>
<div
class=
"col-10 flex"
>
...
...
@@ -31,7 +27,213 @@
/>
</div>
</div>
<div
style=
"row items-center"
>
<!-- 多个约课 -->
<div
v-if=
"selectedCourseList.length>1"
>
<div
class=
"column shadow-4 q-mb-md q-pb-md"
v-for=
"(item,index) in courseInformationList"
:key=
"index"
>
<div
class=
"q-pt-md q-pb-md"
>
<span
class=
"q-ml-md text-primary"
>
课程:
</span>
{{
item
.
CourseName
}}
</div>
<div
class=
"col row wrap q-mr-lg q-ml-lg q-col-gutter-md"
>
<q-input
filled
stack-label
maxlength=
"3"
:dense=
"false"
v-model=
"item.GuestNum"
label=
"人数"
:rules=
"[val => !!val || '请填写人数']"
disable
class=
"col-6 q-py-sm"
/>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"item.Class_Price"
:disable=
"true"
class=
"col-6 q-py-sm"
label=
"单价(课程售价)"
style=
"display:none;"
/>
<template
v-if=
"modityOrderType == 1"
>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"item.Unit_Price"
:disable=
"IsShowUpPrice == true ? false : true"
class=
"col-6 q-py-sm"
label=
"成交单价"
:rules=
"[val => !!val || '请填成交单价']"
/>
<q-toggle
v-model=
"IsShowUpPrice"
label=
"高于定价收生"
class=
"q-mb-md"
style=
"display:none;"
/>
</
template
>
<
template
v-if=
"modityOrderType == 2"
>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"item.Unit_Price"
:disable=
"true"
class=
"col-6 q-py-sm"
label=
"成交单价"
:rules=
"[val => !!val || '请填成交单价']"
/>
</
template
>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"item.DiscountMoney"
:disable=
"true"
class=
"col-6 q-py-sm"
label=
"优惠金额"
/>
<
template
v-if=
"modityOrderType == 3"
>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"item.Unit_Price"
class=
"col-6 q-py-sm"
label=
"成交单价"
:rules=
"[val => !!val || '请填成交单价']"
/>
</
template
>
<q-input
filled
stack-label
:disable=
"modityOrderType != 3"
:dense=
"false"
maxlength=
"10"
v-model=
"item.PreferPrice"
class=
"col-6 q-py-sm"
label=
"应收"
/>
<q-select
v-if=
"mode == 2"
standout=
"bg-primary text-white"
option-value=
"SId"
option-label=
"SName"
v-model=
"item.ScrollSchoolId"
:options=
"newSchoolList"
emit-value
map-options
class=
"col-6 q-py-sm"
label=
"校区"
/>
<q-select
:disable=
"modityOrderType == 2"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
v-model=
"item.OrderSource"
:options=
"SourceEnumList"
emit-value
map-options
class=
"col-6 q-py-sm"
label=
"客人来源"
/>
<q-select
:disable=
"
modityOrderType == 2 ||
item.JoinType == 3 ||
CourseConsultantDisable
"
v-model=
"item.CourseConsultantId"
:options=
"EmployeeList2"
filled
use-input
label=
"课程顾问"
option-label=
"EmployeeName"
option-value=
"Id"
ref=
"EmployeeName2"
class=
"col-6 q-py-sm"
emit-value
map-options
@
filter=
"filterFn2"
>
<
template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
未找到相关数据
</q-item-section>
</q-item>
</
template
>
</q-select>
<q-input
:disable=
"modityOrderType == 2"
v-if=
"item.OrderSource == 3"
filled
stack-label
:dense=
"false"
maxlength=
"50"
v-model=
"item.GeneralOccupation"
class=
"col-6 q-py-sm"
label=
"一般同行"
/>
<q-input
:disable=
"modityOrderType == 2"
v-if=
"item.OrderSource == 7"
filled
stack-label
:dense=
"false"
maxlength=
"50"
v-model=
"item.EduOccupation"
class=
"col-6 q-py-sm"
label=
"教育同行"
/>
<q-input
:disable=
"modityOrderType == 2"
v-if=
"item.IsLessPrice == 1"
maxlength=
"10"
filled
stack-label
:dense=
"false"
v-model=
"item.PerLessMoney"
class=
"col-6 q-py-sm"
label=
"少价金额(每人)"
:hint=
"'总少价金额:' + item.PerLessMoney * item.GuestNum"
/>
<q-input
disable
v-if=
"item.EnterId > 0"
filled
stack-label
v-model=
"EnterName"
class=
"col-6 q-py-sm"
label=
"市场人员"
/>
<q-input
v-if=
"OrderMsg.HelpEnterId>0"
filled
stack-label
disable
:dense=
"false"
maxlength=
"10"
v-model=
"AssistName"
class=
"col-6 q-py-sm"
label=
"协助老师"
/>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"item.SaleRemark"
type=
"textarea"
class=
"col-12 q-py-sm"
label=
"备注"
/>
</div>
</div>
</div>
<!-- 一个约课、班课 -->
<div
v-else
class=
"column items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<q-input
filled
...
...
@@ -184,7 +386,7 @@
label=
"优惠金额"
/>
<!-- <q-input filled stack-label :dense="false" v-model="OrderMsg.PerDiscountMoney" :disable="true"
class="col-6 q-py-sm" label="优惠金额(每人)" :hint="'总优惠金额:'+(OrderMsg.PerDiscountMoney*OrderMsg.GuestNum)" /> -->
class="col-6 q-py-sm" label="优惠金额(每人)" :hint="'总优惠金额:'+(OrderMsg.PerDiscountMoney*OrderMsg.GuestNum)" /> -->
<
template
v-if=
"modityOrderType == 3"
>
<q-input
filled
...
...
@@ -233,30 +435,30 @@
label=
"客人来源"
/>
<!-- <q-select
:disable="
modityOrderType == 2 || OrderMsg.JoinType == 3 || HelpEnterDisable
"
v-model="OrderMsg.HelpEnterId"
:options="EmployeeList"
filled
use-input
label="协助老师"
option-label="EmployeeName"
option-value="Id"
ref="EmployeeName"
class="col-6 q-py-sm"
emit-value
map-options
@filter="filterFn"
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select> -->
:disable="
modityOrderType == 2 || OrderMsg.JoinType == 3 || HelpEnterDisable
"
v-model="OrderMsg.HelpEnterId"
:options="EmployeeList"
filled
use-input
label="协助老师"
option-label="EmployeeName"
option-value="Id"
ref="EmployeeName"
class="col-6 q-py-sm"
emit-value
map-options
@filter="filterFn"
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select> -->
<q-select
:disable=
"
modityOrderType == 2 ||
...
...
@@ -307,7 +509,7 @@
label=
"教育同行"
/>
<!-- <q-toggle :disable="(modityOrderType==2)" v-model="OrderMsg.IsLessPrice" :false-value="0" :true-value="1"
label="是否少价" class="q-mb-md" /> -->
label="是否少价" class="q-mb-md" /> -->
<q-input
:disable=
"modityOrderType == 2"
v-if=
"OrderMsg.IsLessPrice == 1"
...
...
@@ -390,6 +592,7 @@ import {
getClassOrderInfo
,
//获取订单操作日志列表
getOrderSourceEnumList
,
//获取订单来源 枚举
setClassOrder
,
//修改订单
SetClassOrderBatch
,
//多个约课订单
queryChaClassInfo
,
GetSelectClassOrderList
//获取前置下拉
}
from
"../../../../api/sale/sale"
;
...
...
@@ -425,16 +628,16 @@ export default {
default
:
()
=>
[]
},
// 已选的多选课程
defaultCourse
:
{
selectedCourseList
:
{
type
:
Array
,
default
:
()
=>
[]
}
},
data
()
{
return
{
courseInformationList
:[],
//存储多个课程
AssistName
:
""
,
//协助老师名称
IsShowEditOrder
:
true
,
OrderMsg
:
{
ClassId
:
0
,
//班级编号
GuestNum
:
0
,
//人数
...
...
@@ -472,7 +675,6 @@ export default {
// NormalCommission:'',//正常返佣金额
// RenewCommission:"",// 预计返佣金额
ScrollSchoolId
:
-
1
,
HelpEnterId
:
0
,
//协助老师id:STTeacherId AssistType =4 表示老师
},
newSchoolList
:
[],
EnterName
:
""
,
//市场人员
...
...
@@ -492,23 +694,23 @@ export default {
inception
:
false
,
inceptionData
:
null
};
},
computed
:
{
},
watch
:
{
},
created
()
{
if
(
this
.
saveObj
&&
this
.
saveObj
.
CourseId
)
{
this
.
OrderMsg
.
CourseId
=
this
.
saveObj
.
CourseId
;
}
// 判断是否续费协助老师赋值
if
(
this
.
stuData
.
StuList
[
0
].
IsRenewGuest
!=
1
){
this
.
OrderMsg
.
HelpEnterId
=
this
.
stuData
.
StuList
[
0
].
STTeacherId
;
this
.
AssistName
=
this
.
stuData
.
StuList
[
0
].
STTeacherName
}
this
.
getOrderSEList
();
this
.
getEmployee
(
0
);
this
.
getEmployee
(
2
);
this
.
initConfig
();
this
.
getSelectClass
();
// console.log(this.defaultCourse,'defaultCoursedefaultCourse')
},
mounted
()
{
this
.
newSchoolList
=
[];
...
...
@@ -521,8 +723,115 @@ export default {
this
.
getAssistList
();
this
.
OrderMsg
.
EnterId
=
this
.
stuData
.
EnterId
;
this
.
EnterName
=
this
.
stuData
.
EnterName
;
// 判断是否续费协助老师赋值
if
(
this
.
stuData
.
StuList
[
0
].
IsRenewGuest
!=
1
){
this
.
OrderMsg
.
HelpEnterId
=
this
.
stuData
.
StuList
[
0
].
STTeacherId
;
this
.
AssistName
=
this
.
stuData
.
StuList
[
0
].
STTeacherName
}
if
(
this
.
selectedCourseList
.
length
>
1
){
this
.
selectedCourseList
.
forEach
(
item
=>
{
let
dataObj
=
{
CourseName
:
""
,
//课程名称
ClassId
:
0
,
//班级编号
GuestNum
:
1
,
//人数
B2CRatio
:
0
,
B2CReNewRatio
:
0
,
Unit_Price
:
0
,
PreferPrice
:
0
,
//应收
OrderSource
:
0
,
SaleRemark
:
""
,
Class_Price
:
0
,
//单价
OrderId
:
0
,
OrderType
:
0
,
//订单类型(1-班级课程订单,2-留学就业订单)
SourceId
:
0
,
//来源编号
HelpEnterId
:
0
,
//协助老师编号
GeneralOccupation
:
""
,
//一般同行
EduOccupation
:
""
,
//教育同行
IsLessPrice
:
0
,
//是否少价 0 不少 1 少
LessPrice
:
0
,
//少价金额
PerLessMoney
:
0
,
//每人少价金额
OrderNature
:
1
,
//订单性质
OldPreferPrice
:
0
,
//原实际应收
IsChaBan
:
0
,
//是否插班报入(1-是)
CourseId
:
""
,
//课程编号
StartClassHours
:
0
,
//已上课时
EffectTime
:
""
,
//生效时间
UpOrderId
:
0
,
//前置订单编号
JoinType
:
1
,
//订单报入类型
DiscountMoney
:
0
,
//优惠金额
PerDiscountMoney
:
0
,
//每人优惠金额
CourseConsultantId
:
0
,
//课程顾问
CustomerId
:
0
,
//同行
OrderIdentify
:
2
,
//标识参数, 1产品下单 2客户转订单
StuIds
:
""
,
EnterId
:
0
,
//市场人员
// NormalCommission:'',//正常返佣金额
// RenewCommission:"",// 预计返佣金额
ScrollSchoolId
:
-
1
,
OrderType
:
1
}
if
(
item
.
CourseName
){
dataObj
.
CourseName
=
item
.
CourseName
}
if
(
item
.
ClassId
)
{
dataObj
.
ClassId
=
item
.
ClassId
;
}
if
(
item
.
SellPrice
)
{
dataObj
.
Unit_Price
=
item
.
SellPrice
;
dataObj
.
Class_Price
=
item
.
SellPrice
;
}
if
(
item
.
SourceId
)
{
dataObj
.
SourceId
=
item
.
SourceId
;
}
if
(
item
.
CourseId
)
{
dataObj
.
CourseId
=
item
.
CourseId
;
}
else
{
dataObj
.
CourseId
=
""
;
}
if
(
item
.
B2CRatio
)
{
dataObj
.
B2CRatio
=
item
.
B2CRatio
;
}
if
(
item
.
B2CReNewRatio
)
{
dataObj
.
B2CReNewRatio
=
item
.
B2CReNewRatio
;
}
if
(
this
.
stuData
.
RenewNum
>
0
)
{
dataObj
.
SaleRemark
=
`首次报名优惠比例
${
item
.
B2CRatio
??
0
}
%
;
续费优惠比例
$
{
item
.
B2CReNewRatio
??
0
}
%
`;
} else {
dataObj.SaleRemark = `
首次报名优惠比例
$
{
item
.
B2CRatio
??
0
}
%
`;
}
this.courseInformationList.push(dataObj)
});
this.totalCourseFee()
}
},
methods: {
// 多个课程计算
totalCourseFee(){
this.courseInformationList.forEach((item)=>{
if(this.stuData.StuList[0].IsRenewGuest==1){
item.DiscountMoney = this.accAdd(
item.DiscountMoney,
this.accMul(
item.Class_Price,
item.B2CReNewRatio / 100
)
);
item.PreferPrice = item.GuestNum*item.Unit_Price
}else{
item.DiscountMoney = this.accAdd(
item.DiscountMoney,
this.accMul(item.Class_Price, item.B2CRatio / 100)
);
item.PreferPrice = item.GuestNum*item.Unit_Price
}
})
},
//获取协助人员
getAssistList() {
const ids = this.stuData.StuList.map(e => e.StuId).toString();
...
...
@@ -539,6 +848,11 @@ export default {
if (e.AssistType == 2) {
this.OrderMsg.CourseConsultantId = e.AssistId;
this.CourseConsultantDisable = true;
if(this.selectedCourseList.length>1){
this.courseInformationList.forEach(item=>{
return item.CourseConsultantId = e.AssistId
})
}
}
});
}
...
...
@@ -701,6 +1015,7 @@ export default {
}
});
},
// 初始化
initData() {
this.OrderMsg.HelpEnterId = 0;
this.OrderMsg.GeneralOccupation = "";
...
...
@@ -749,6 +1064,10 @@ export default {
if (this.saveObj.B2CReNewRatio) {
this.OrderMsg.B2CReNewRatio = this.saveObj.B2CReNewRatio;
}
if(this.selectedCourseList.length>1){
return
}
}
this.IsShowEditOrder = true;
...
...
@@ -758,7 +1077,7 @@ export default {
0
}
%
;
续费优惠比例
$
{
this
.
saveObj
.
B2CReNewRatio
??
0
}
%
`; //备注
} else {
this.OrderMsg.SaleRemark = `
首次报名优惠比例
$
{
this
.
saveObj
.
B2CRatio
??
0
}
%
`; //备注
0
}
%
`; //备注
})
}
},
//筛选员工
...
...
@@ -832,11 +1151,65 @@ export default {
var tempArray = res.Data;
this.SourceEnumList = tempArray;
this.OrderMsg.OrderSource = tempArray[0].Id;
if(this.selectedCourseList.length>0){
this.courseInformationList.forEach(item=>{
return item.OrderSource = this.OrderMsg.OrderSource
})
}
}
});
},
//修改订单
saveOrderInfo() {
if(this.selectedCourseList.length>1){
this.multipleAppointmentsFun()
}else{
this.singleAppointmentsFun()
}
},
// 多个约课
multipleAppointmentsFun(){
//插班验证课程和生效时间
this.courseInformationList.forEach(item=>{
item.StuIds = this.stuData.StuList.map(e => e.StuId).toString();
item.HelpEnterId = this.OrderMsg.HelpEnterId
item.CustomerId = this.stuData.CustomerId;
})
let Msg = {
OrderList: this.courseInformationList
}
SetClassOrderBatch(Msg)
.then(res => {
this.$emit("cancelloading"); //取消按钮的加载
if (res.Code == 1) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "操作成功!",
position: "top"
});
//调用父页面成功方法
this.$emit("success");
this.IsShowEditOrder = false;
} else {
this.$q.notify({
type: "negative",
position: "top",
message: res.Message
});
}
})
.catch(err => {
this.$emit("cancelloading"); //取消按钮的加载
if (err.Code == 2) {
this.inceptionData = err;
this.inception = true;
}
});
},
// 单个班课、约课
singleAppointmentsFun(){
//插班验证课程和生效时间
if (this.OrderMsg.IsChaBan == 1) {
this.$refs.CourseId.validate();
...
...
src/pages/activity/activeSignUpList.vue
View file @
4cf4355a
...
...
@@ -2,242 +2,200 @@
<div
class=
"page-body myActiveOrder"
>
<div
class=
"row col"
style=
"margin-bottom: 10px"
>
<div
class=
"row col"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"返回"
@
click=
"goBack"
/>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"返回"
@
click=
"goBack"
/>
<div
v-if=
"activeName"
style=
"line-height: 25px"
>
活动名称:
{{
activeName
}}
</div>
</div>
<q-btn
color=
"accent"
style=
"float: right"
v-if=
"from == 1"
size=
"sm"
label=
"参与者名单"
@
click=
"gourl"
/>
<q-btn
color=
"accent"
style=
"float: right"
v-if=
"from == 1"
size=
"sm"
label=
"参与者名单"
@
click=
"gourl"
/>
</div>
<div
class=
"page-content"
>
<OrderItem
:dataList=
"data.List"
ref=
"orderL"
:authObj=
"authObj"
:modityOrderType=
"2"
:cancelList=
"CancelList"
:formActiveMan=
"true"
@
agree=
"agreeApply"
@
refuse=
"jujueMsg"
@
success=
"refreshClassOrder"
isActivity
></OrderItem>
<OrderItem
:dataList=
"data.List"
ref=
"orderL"
:authObj=
"authObj"
:modityOrderType=
"2"
:cancelList=
"CancelList"
:formActiveMan=
"true"
@
agree=
"agreeApply"
@
refuse=
"jujueMsg"
@
success=
"refreshClassOrder"
isActivity
>
</OrderItem>
<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>
<!-- 拒绝报名 -->
<el-dialog
title=
"拒绝报名"
:visible
.
sync=
"showJujue"
width=
"600px"
>
<div
class=
"activityFlex"
>
<el-input
type=
"textarea"
rows=
"4"
v-model=
"bdMsg.RejectRemark"
></el-input>
<el-input
type=
"textarea"
rows=
"4"
v-model=
"bdMsg.RejectRemark"
></el-input>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<!--
<el-button
type=
"primary"
size=
"small"
@
click=
"sureJujue"
>
确定
</el-button>
-->
<q-btn
text-color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"取消"
@
click=
"showJujue = false"
/>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"确定"
@
click=
"sureJujue"
/>
<q-btn
text-color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"取消"
@
click=
"showJujue = false"
/>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"确定"
@
click=
"sureJujue"
/>
</span>
</el-dialog>
</div>
</
template
>
<
script
>
import
{
quertClassOrderList
}
from
"../../api/sale/sale"
;
import
{
quertClassOrderList
}
from
"../../api/sale/sale"
;
import
OrderItem
from
"../../components/sale/activeOrder-item.vue"
;
export
default
{
meta
:
{
title
:
"活动报名列表"
,
},
components
:
{
OrderItem
,
},
data
()
{
return
{
data
:
{},
activeName
:
""
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
ActivityId
:
0
,
},
pageCount
:
0
,
//正常订单
dataList
:
[],
//取消订单
CancelList
:
[],
//权限判断
authObj
:
{
isShowName
:
true
,
//不显示班级名称
isShowEditSale
:
true
,
//显示修改销售按钮
isShowEducationRemark
:
true
,
//显示修改教务备注
isShowPrincipalRemark
:
true
,
//显示校长备注
isShowManagerRemark
:
true
,
//显示总经理备注
isShowCommissionEdit
:
true
,
//显示修改提成按钮
isShowRewardEdit
:
true
,
//显示修改额外提成按钮
},
bdMsg
:
{
Id
:
0
,
//报名id
ApplyForCancelStatus
:
1
,
//申请取消审核状态 1同意 2拒绝
RejectRemark
:
""
,
},
showJujue
:
false
,
from
:
0
,
//来源页面,1===活动=>活动管理=>活动列表
};
},
created
()
{
if
(
this
.
$route
.
query
.
Id
)
{
this
.
msg
.
ActivityId
=
this
.
$route
.
query
.
Id
;
}
if
(
this
.
$route
.
query
.
name
)
{
this
.
activeName
=
this
.
$route
.
query
.
name
;
}
if
(
this
.
$route
.
query
.
from
)
{
this
.
from
=
this
.
$route
.
query
.
from
;
}
this
.
getList
();
},
methods
:
{
//获取订单列表
getList
()
{
this
.
loading
=
true
;
this
.
apipostDS
(
"/api/Education/GetConsultOrderStatisticsPage"
,
this
.
msg
,
(
res
)
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
data
=
res
.
data
.
data
.
pageData
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
}
);
import
OrderItem
from
"../../components/sale/activeOrder-item.vue"
;
export
default
{
meta
:
{
title
:
"活动报名列表"
,
},
//刷新页面
refreshClassOrder
()
{
this
.
getList
();
components
:
{
OrderItem
,
},
goBack
()
{
this
.
$router
.
go
(
-
1
);
data
()
{
return
{
data
:
{},
activeName
:
""
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
ActivityId
:
0
,
},
pageCount
:
0
,
//正常订单
dataList
:
[],
//取消订单
CancelList
:
[],
//权限判断
authObj
:
{
isShowName
:
true
,
//不显示班级名称
isShowEditSale
:
true
,
//显示修改销售按钮
isShowEducationRemark
:
true
,
//显示修改教务备注
isShowPrincipalRemark
:
true
,
//显示校长备注
isShowManagerRemark
:
true
,
//显示总经理备注
isShowCommissionEdit
:
true
,
//显示修改提成按钮
isShowRewardEdit
:
true
,
//显示修改额外提成按钮
},
bdMsg
:
{
Id
:
0
,
//报名id
ApplyForCancelStatus
:
1
,
//申请取消审核状态 1同意 2拒绝
RejectRemark
:
""
,
},
showJujue
:
false
,
from
:
0
,
//来源页面,1===活动=>活动管理=>活动列表
};
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
created
()
{
if
(
this
.
$route
.
query
.
Id
)
{
this
.
msg
.
ActivityId
=
this
.
$route
.
query
.
Id
;
}
if
(
this
.
$route
.
query
.
name
)
{
this
.
activeName
=
this
.
$route
.
query
.
name
;
}
if
(
this
.
$route
.
query
.
from
)
{
this
.
from
=
this
.
$route
.
query
.
from
;
}
this
.
getList
();
},
//同意
agreeApply
(
item
)
{
this
.
bdMsg
.
Id
=
item
.
Id
;
this
.
bdMsg
.
ApplyForCancelStatus
=
1
;
this
.
apipostDS
(
"/api/Education/SetCommerceConsultApplyCancel
"
,
this
.
bdM
sg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
"操作成功"
);
this
.
getList
()
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
methods
:
{
//获取订单列表
getList
()
{
this
.
loading
=
true
;
this
.
apipostDS
(
"/api/Education/GetConsultOrderStatisticsPage
"
,
this
.
m
sg
,
(
res
)
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
data
=
res
.
data
.
data
.
pageData
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
}
}
);
},
jujueMsg
(
item
)
{
this
.
bdMsg
.
Id
=
item
.
Id
;
this
.
showJujue
=
true
;
},
// 拒绝
sureJujue
()
{
if
(
!
this
.
bdMsg
.
RejectRemark
)
{
this
.
Error
(
"请输入拒绝原因"
);
return
;
}
this
.
bdMsg
.
ApplyForCancelStatus
=
2
;
this
.
apipostDS
(
"/api/Education/SetCommerceConsultApplyCancel"
,
this
.
bdMsg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
showJujue
=
false
;
this
.
Success
(
"操作成功"
);
this
.
getList
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
);
},
//刷新页面
refreshClassOrder
()
{
this
.
getList
();
},
goBack
()
{
this
.
$router
.
go
(
-
1
);
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
//同意
agreeApply
(
item
)
{
this
.
bdMsg
.
Id
=
item
.
Id
;
this
.
bdMsg
.
ApplyForCancelStatus
=
1
;
this
.
apipostDS
(
"/api/Education/SetCommerceConsultApplyCancel"
,
this
.
bdMsg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
"操作成功"
);
this
.
getList
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
}
);
},
jujueMsg
(
item
)
{
this
.
bdMsg
.
Id
=
item
.
Id
;
this
.
showJujue
=
true
;
},
// 拒绝
sureJujue
()
{
if
(
!
this
.
bdMsg
.
RejectRemark
)
{
this
.
Error
(
"请输入拒绝原因"
);
return
;
}
);
},
gourl
()
{
this
.
$router
.
push
({
path
:
"/activity/activeSignUpList2"
,
query
:
{
Id
:
this
.
msg
.
ActivityId
,
name
:
this
.
activeName
,
from
:
this
.
from
,
},
});
this
.
bdMsg
.
ApplyForCancelStatus
=
2
;
this
.
apipostDS
(
"/api/Education/SetCommerceConsultApplyCancel"
,
this
.
bdMsg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
showJujue
=
false
;
this
.
Success
(
"操作成功"
);
this
.
getList
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
}
);
},
gourl
()
{
this
.
$router
.
push
({
path
:
"/activity/activeSignUpList2"
,
query
:
{
Id
:
this
.
msg
.
ActivityId
,
name
:
this
.
activeName
,
from
:
this
.
from
,
},
});
},
},
},
};
};
</
script
>
<
style
>
.myActiveOrder
.table-body
{
height
:
calc
(
100vh
-
220px
);
}
.myActiveOrder
.table-body
{
height
:
calc
(
100vh
-
220px
);
}
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
.myActiveOrder
.table-body
::-webkit-scrollbar
{
width
:
5px
;
height
:
5px
;
background-color
:
#f5f5f5
;
}
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
.myActiveOrder
.table-body
::-webkit-scrollbar
{
width
:
5px
;
height
:
5px
;
background-color
:
#f5f5f5
;
}
/*定义滚动条轨道 内阴影+圆角*/
.myActiveOrder
.table-body
::-webkit-scrollbar-track
{
-webkit-box-shadow
:
inset
0
0
6px
rgba
(
0
,
0
,
0
,
0.3
);
border-radius
:
10px
;
background-color
:
#f5f5f5
;
}
/*定义滚动条轨道 内阴影+圆角*/
.myActiveOrder
.table-body
::-webkit-scrollbar-track
{
-webkit-box-shadow
:
inset
0
0
6px
rgba
(
0
,
0
,
0
,
0.3
);
border-radius
:
10px
;
background-color
:
#f5f5f5
;
}
/*定义滑块 内阴影+圆角*/
.myActiveOrder
.table-body
::-webkit-scrollbar-thumb
{
border-radius
:
5px
;
-webkit-box-shadow
:
inset
0
0
6px
rgba
(
0
,
0
,
0
,
0.3
);
background-color
:
#555
;
}
</
style
>
/*定义滑块 内阴影+圆角*/
.myActiveOrder
.table-body
::-webkit-scrollbar-thumb
{
border-radius
:
5px
;
-webkit-box-shadow
:
inset
0
0
6px
rgba
(
0
,
0
,
0
,
0.3
);
background-color
:
#555
;
}
</
style
>
\ No newline at end of file
src/pages/financial/market/empBonusDetail.vue
View file @
4cf4355a
...
...
@@ -15,7 +15,13 @@
<el-table-column
prop=
"MonthNum"
label=
"月份"
>
</el-table-column>
<el-table-column
prop=
"OpenBonus"
label=
"开单奖金"
>
</el-table-column>
<el-table-column
prop=
"ClueNumSalary"
label=
"线索奖励"
>
</el-table-column>
<el-table-column
prop=
"CurGuestNum"
width=
"110"
label=
"当月订单人数"
>
</el-table-column>
<el-table-column
width=
"110"
label=
"当月订单人数"
>
<template
slot-scope=
"scope"
>
<a
title=
"点击跳转"
style=
"cursor:pointer;color:blue;text-decoration:underline;"
@
click=
"GoToOrderList(scope.row)"
>
{{
scope
.
row
.
CurGuestNum
}}
</a>
</
template
>
</el-table-column>
<el-table-column
label=
"当月奖励金额"
width=
"110"
>
<
template
slot-scope=
"scope"
>
<el-popover
placement=
"left"
width=
"420"
trigger=
"click"
>
...
...
@@ -119,13 +125,23 @@
this
.
msg
.
PeriodId
=
this
.
$route
.
query
.
Id
;
this
.
getList
();
}
if
(
this
.
$route
.
query
.
UserId
)
{
if
(
this
.
$route
.
query
.
UserId
)
{
this
.
msg
.
EmployeeId
=
this
.
$route
.
query
.
UserId
this
.
msg
.
YearNum
=
this
.
$route
.
query
.
Periods
.
slice
(
0
,
4
)
this
.
msg
.
MonthNum
=
this
.
$route
.
query
.
Periods
.
slice
(
5
,
7
)
this
.
msg
.
YearNum
=
this
.
$route
.
query
.
Periods
.
slice
(
0
,
4
)
this
.
msg
.
MonthNum
=
this
.
$route
.
query
.
Periods
.
slice
(
5
,
7
)
}
},
methods
:
{
GoToOrderList
(
item
)
{
var
lastDay
=
new
Date
(
item
.
YearNum
,
item
.
MonthNum
,
0
).
getDate
()
var
qObj
=
{
QStartTime
:
item
.
YearNum
+
"-"
+
item
.
MonthNum
+
"-01"
,
QEndTime
:
item
.
YearNum
+
"-"
+
item
.
MonthNum
+
"-"
+
lastDay
,
EnterID
:
item
.
EmployeeId
,
};
this
.
OpenNewUrl
(
'/sale/orderStatistics'
,
qObj
);
},
//获取分页列表
getList
()
{
GetPersonnelPeriodDetails
(
this
.
msg
).
then
(
res
=>
{
...
...
src/pages/sale/orderStatistics.vue
View file @
4cf4355a
...
...
@@ -144,8 +144,8 @@
</div>
</div>
<div
class=
"page-content"
>
<orderlist
:dataList=
"data.List"
:authObj=
"authObj"
@
success=
"refreshClassOrder"
:modityOrderType=
"3"
ref=
"orderL"
:loading=
"loading"
>
<orderlist
:dataList=
"data.List"
:authObj=
"authObj"
@
success=
"refreshClassOrder"
:modityOrderType=
"3"
ref=
"orderL"
:loading=
"loading"
>
</orderlist>
<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"
...
...
@@ -270,6 +270,12 @@
if
(
this
.
$route
.
query
.
EndTime
)
{
this
.
msg
.
EndTime
=
this
.
$route
.
query
.
EndTime
+
"-01"
;
}
if
(
this
.
$route
.
query
.
QStartTime
)
{
this
.
msg
.
StartTime
=
this
.
$route
.
query
.
QStartTime
;
}
if
(
this
.
$route
.
query
.
QEndTime
)
{
this
.
msg
.
EndTime
=
this
.
$route
.
query
.
QEndTime
;
}
if
(
this
.
$route
.
query
.
EnterID
)
{
this
.
msg
.
EnterID
=
Number
(
this
.
$route
.
query
.
EnterID
);
}
...
...
@@ -285,13 +291,13 @@
this
.
getCourseList
();
},
mounted
()
{
if
(
this
.
$route
.
query
.
UserId
)
{
this
.
msg
.
EnterID
=
this
.
$route
.
query
.
UserId
-
0
let
y
=
this
.
$route
.
query
.
Periods
.
slice
(
0
,
4
)
let
m
=
this
.
$route
.
query
.
Periods
.
slice
(
5
,
8
)
let
d
=
new
Date
(
y
,
m
,
0
).
getDate
()
if
(
this
.
$route
.
query
.
UserId
)
{
this
.
msg
.
EnterID
=
this
.
$route
.
query
.
UserId
-
0
let
y
=
this
.
$route
.
query
.
Periods
.
slice
(
0
,
4
)
let
m
=
this
.
$route
.
query
.
Periods
.
slice
(
5
,
8
)
let
d
=
new
Date
(
y
,
m
,
0
).
getDate
()
this
.
msg
.
StartTime
=
this
.
$route
.
query
.
Periods
this
.
msg
.
EndTime
=
y
+
'-'
+
m
+
'-'
+
d
this
.
msg
.
EndTime
=
y
+
'-'
+
m
+
'-'
+
d
}
this
.
getList
();
this
.
getEmployee
(
0
);
...
...
src/pages/school/sysuser.vue
View file @
4cf4355a
...
...
@@ -182,6 +182,11 @@
<q-item-label>
客户交接
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
@
click=
"orderHandover(props.row)"
v-if=
'DeptEmpEnable==1'
>
<q-item-section>
<q-item-label>
订单交接
</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
</div>
...
...
@@ -194,10 +199,11 @@
</employee-set>
<employee-info
v-if=
"isShowEmpInfo"
:save-obj=
"managerOption"
@
close=
"closeStuForm"
@
success=
"refreshPage"
>
</employee-info>
<!-- 企业微信客户交接 -->
<q-dialog
v-model=
"isDetails"
>
<q-card
style=
"width: 450px;"
>
<q-card-section
class=
"row items-center q-pb-none"
>
<div
class=
"text-h6"
>
客户交接
</div>
<div
class=
"text-h6"
>
企业微信
客户交接
</div>
<q-space
/>
<q-btn
icon=
"close"
flat
round
dense
v-close-popup
/>
</q-card-section>
...
...
@@ -210,7 +216,7 @@
</div>
<div
style=
"font-size: 12px;color:red;margin-top: 10px;"
>
注:必须选择一项转移目标
</div>
<div
style=
"display: flex;align-items: center;margin-top: 0px;"
>
<div
style=
"width: 110px;"
>
客户转移
</div>
<div
style=
"width: 110px;"
>
企微
客户转移
</div>
<q-radio
v-model=
"joinMsg.CustomerTransfer"
val=
"1"
label=
"是"
/>
<q-radio
v-model=
"joinMsg.CustomerTransfer"
val=
"2"
label=
"否"
/>
</div>
...
...
@@ -228,6 +234,41 @@
</q-card>
</q-dialog>
<!-- 订单交接 -->
<q-dialog
v-model=
"orderIsDetails"
>
<q-card
style=
"width: 450px;"
>
<q-card-section
class=
"row items-center q-pb-none"
>
<div
class=
"text-h6"
>
订单交接
</div>
<q-space
/>
<q-btn
icon=
"close"
flat
round
dense
v-close-popup
/>
</q-card-section>
<q-separator
/>
<q-card-section>
<div>
<q-select
style=
"width: 100%;"
filled
stack-label
option-value=
"Id"
option-label=
"EmployeeName"
use-input
v-model=
"orderHandoverMsg.ReceiveId"
@
filter=
"filterFn"
ref=
"Id"
:options=
"Employeelist"
label=
"交接人员"
:dense=
"false"
emit-value
map-options
/>
</div>
<div
style=
"font-size: 12px;color:red;margin-top: 10px;"
>
注:必须选择一项转移目标
</div>
<div
style=
"display: flex;align-items: center;margin-top: 0px;"
>
<div
style=
"width: 110px;"
>
订单转移
</div>
<q-radio
v-model=
"orderHandoverMsg.CustomerTransfer"
val=
"1"
label=
"是"
/>
<q-radio
v-model=
"orderHandoverMsg.CustomerTransfer"
val=
"2"
label=
"否"
/>
</div>
<div
style=
"display: flex;align-items: center;margin-top: 10px;"
>
<div
style=
"width: 110px;"
>
渠道码人员转移
</div>
<q-radio
v-model=
"orderHandoverMsg.ChannelTransfer"
val=
"1"
label=
"是"
/>
<q-radio
v-model=
"orderHandoverMsg.ChannelTransfer"
val=
"2"
label=
"否"
/>
</div>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"orderIsDetails=false"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"确定"
@
click=
"saveOrderHandoverInfo()"
:loading=
"orderloading"
/>
</q-card-actions>
</q-card>
</q-dialog>
</div>
</div>
</template>
...
...
@@ -243,7 +284,8 @@
import
{
SetSynvEduEmployee
,
setUserCoustomerTransfer
,
getWeChatConfigInfo
getWeChatConfigInfo
,
SetUserLeaveOrderCareOf
}
from
'../../api/system/wechat'
;
import
{
BatchResetUserPassword
...
...
@@ -428,6 +470,15 @@
Employeelist
:
[],
AllEmployeelist
:
[],
DeptEmpEnable
:
0
,
//是否显示企业微信信息 1 显示
orderIsDetails
:
false
,
//离职人员订单交接
orderHandoverMsg
:{
UserId
:
""
,
//原跟进成员的userid
ReceiveId
:
""
,
//接替成员的userid
TypeIds
:
0
,
//类型 1 订单转交 2学员转交
CustomerTransfer
:
"1"
,
//是否订单转移
ChannelTransfer
:
"1"
,
//是否渠道码人员转移
},
//离职人员订单交接数据
orderloading
:
false
,
}
},
mounted
()
{
...
...
@@ -440,6 +491,66 @@
this
.
getmicrodeploy
()
//获取企业微信的配置
},
methods
:
{
// 订单交接
orderHandover
(
row
){
this
.
orderHandoverMsg
.
UserId
=
row
.
EmAccountId
this
.
orderIsDetails
=
true
},
saveOrderHandoverInfo
()
{
//保存
if
(
this
.
orderHandoverMsg
.
ReceiveId
==
''
)
{
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`请选择接替人员`
,
position
:
'top'
})
return
}
if
(
this
.
orderHandoverMsg
.
ReceiveId
==
this
.
orderHandoverMsg
.
UserId
)
{
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`接替人员不能是本人`
,
position
:
'top'
})
return
}
if
(
this
.
orderHandoverMsg
.
CustomerTransfer
==
2
&&
this
.
orderHandoverMsg
.
ChannelTransfer
==
2
)
{
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`转移目标必须选择一项`
,
position
:
'top'
})
return
}
if
(
this
.
orderHandoverMsg
.
CustomerTransfer
==
1
&&
this
.
orderHandoverMsg
.
ChannelTransfer
!=
1
){
this
.
orderHandoverMsg
.
TypeIds
=
"1"
}
else
if
(
this
.
orderHandoverMsg
.
CustomerTransfer
!=
1
&&
this
.
orderHandoverMsg
.
ChannelTransfer
==
1
){
this
.
orderHandoverMsg
.
TypeIds
=
"2"
}
else
if
(
this
.
orderHandoverMsg
.
CustomerTransfer
==
1
&&
this
.
orderHandoverMsg
.
ChannelTransfer
==
1
){
this
.
orderHandoverMsg
.
TypeIds
=
"1,2"
}
this
.
orderloading
=
true
let
msg
=
{
UserId
:
this
.
orderHandoverMsg
.
UserId
,
ReceiveId
:
this
.
orderHandoverMsg
.
ReceiveId
,
TypeIds
:
this
.
orderHandoverMsg
.
TypeIds
}
SetUserLeaveOrderCareOf
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
res
.
Message
,
position
:
'top'
})
this
.
orderIsDetails
=
false
this
.
orderloading
=
false
this
.
getManager
()
})
.
catch
(
err
=>
{
this
.
orderloading
=
false
})
},
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getManager
()
...
...
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