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
61ae4e05
Commit
61ae4e05
authored
Feb 10, 2022
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
d7a19f54
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
3088 additions
and
0 deletions
+3088
-0
b2bOrderlist.vue
src/components/sale/peerInfo/b2bOrderlist.vue
+1163
-0
baseInfo.vue
src/components/sale/peerInfo/baseInfo.vue
+115
-0
conRight.vue
src/components/sale/peerInfo/conRight.vue
+43
-0
customer.vue
src/components/sale/peerInfo/customer.vue
+264
-0
order.vue
src/components/sale/peerInfo/order.vue
+430
-0
passbook.vue
src/components/sale/peerInfo/passbook.vue
+255
-0
peerRight.vue
src/components/sale/peerInfo/peerRight.vue
+231
-0
rakeback.vue
src/components/sale/peerInfo/rakeback.vue
+256
-0
withdraw.vue
src/components/sale/peerInfo/withdraw.vue
+331
-0
No files found.
src/components/sale/peerInfo/b2bOrderlist.vue
0 → 100644
View file @
61ae4e05
<!--订单列表-->
<
template
>
<div
class=
"b2bclassorder"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"Id"
>
<template
v-slot:body-cell-OrderId=
"props"
>
<q-td
auto-width
:props=
"props"
>
<div
style=
"color:var(--q-color-primary)"
@
click=
"goOrderdetails(props.row,1)"
>
{{
props
.
row
.
OrderId
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-GuestList=
"props"
>
<q-td
auto-width
:props=
"props"
class=
"flex"
>
<div
class=
"q-ma-xs"
v-for=
"(item,index) in props.row.GuestList"
:key=
"index"
>
{{
item
.
GuestName
}}
</div>
</q-td>
</
template
>
<
template
v-slot:bottom
>
</
template
>
</q-table>
<!--修改课程订单-->
<editorder-form
v-if=
"isShowEditOrderForm"
:save-obj=
"orderObj"
:orderType=
"orderObj.OrderType"
@
close=
"closeOrderSaveForm"
@
success=
"refreshOrder"
:isChaBan=
"isChaBan"
:modityOrderType=
"newModityOrderType"
>
</editorder-form>
<!--修改留学就业订单-->
<studyorder-form
v-if=
"isShowStudyOrderForm"
:save-obj=
"orderObj"
:orderType=
"orderObj.OrderType"
@
close=
"closeOrderSaveForm"
@
success=
"refreshOrder"
:modityOrderType=
"newModityOrderType"
>
</studyorder-form>
<!--修改订单备注-->
<orderremark-form
v-if=
"isShowRemarkOrderForm"
:save-obj=
"orderObj"
:remarkType=
"remarkType"
@
close=
"closeRemarkForm"
@
success=
"refreshOrder"
></orderremark-form>
<!--转交订单-->
<transOrder-form
v-if=
"isShowTransOrderForm"
:save-obj=
"orderObj"
:employeeList=
"EmployeeList"
@
close=
"closeTransOrderForm"
@
success=
"refreshOrder"
></transOrder-form>
<myOrder-form
v-if=
"isShowmyorderForm"
:save-obj=
"myorderObjOption"
@
close=
"closeMOSaveForm"
></myOrder-form>
<!--班级详情-->
<classinfo-form
v-if=
"isShowClassInfo"
:seting-obj=
"classObjOption"
:isShowEditBtn=
"isShowEditBtn"
@
close=
"closeClass"
@
success=
"refreshOrder"
>
</classinfo-form>
<!--退课申请-->
<backclass-form
v-if=
"isShowBackClassForm"
:save-obj=
"orderObj"
@
close=
"closeBackClassForm"
@
success=
"refreshOrder"
>
</backclass-form>
<!-- 修改提成和额外奖励 -->
<money-form
v-if=
"isShowMoney"
:data=
"moneyObj"
:type=
"CommonType"
@
close=
"closeMoneyForm"
@
success=
"refreshOrder"
>
</money-form>
<!--续课申请-->
<continueclass-form
v-if=
"isShowContinueClass"
:save-obj=
"orderObj"
@
close=
"closeContinueClassForm"
@
success=
"refreshOrder"
></continueclass-form>
<!-- 转班申请 -->
<transferclass-form
v-if=
"isShowTransferClass"
:save-obj=
"orderObj"
:ChangeType=
"ChangeType"
@
close=
"closeTransferClassForm"
@
success=
"refreshOrder"
></transferclass-form>
<!-- 查看报价单 -->
<viewquotation-form
v-if=
"isShowviewQuo"
:rId=
"offerId"
:isShowCancle=
"1"
@
close=
"closeQuota"
@
success=
"refreshOrder"
>
</viewquotation-form>
<!--合同信息-->
<eduinfo-form
v-if=
"isShowEduForm"
:seting-obj=
"eduObj"
@
close=
"closeEdudia"
@
success=
"refreshPage"
style=
"margin:0"
>
</eduinfo-form>
<div
v-if=
"isShowContract"
class=
"_show_img_box"
@
click=
"(isShowContract = false), (imgViewList = [])"
>
<div
style=
"
position: absolute;
max-width: 800px;
height: auto;
left: 50%;
top: 50%;
margin-left: -400px;
margin-top: -300px;
"
>
<el-image
style=
"width: 100%; height: 100%"
fit=
"cover"
v-for=
"(item, index) in imgViewList"
:key=
"index"
:src=
"item"
:preview-src-list=
"imgViewList"
>
</el-image>
</div>
</div>
</div>
</template>
<
script
>
import
editorderForm
from
'../../sale/editorder-form'
//修改订单
import
studyorderForm
from
'../../sale/studyOrder-form'
//留学就业订单
import
orderremarkForm
from
'../../sale/orderremark-form'
//订单备注
import
transOrderForm
from
'../../sale/transOrder-form'
//转交订单
import
backclassForm
from
'../../sale/backclass-form'
//退课申请
import
moneyForm
from
'../../sale/money-form'
//修改提成和额外奖励
import
myOrderForm
from
'../../../components/sale/myOrder-form'
import
classinfoForm
from
'../../../components/course/classinfo-form'
;
//班级信息
import
continueclassForm
from
'../../sale/continueclass-form'
//续课申请
import
viewquotationForm
from
'../../sale/viewquotation-form'
//报价单信息
import
transferclassForm
from
'../../sale/transferclass-form'
//转班信息
import
eduinfoForm
from
'../../sale/eduinfo-form'
import
{
setOrderHelpEnterId
,
//老师关联
cancelClassOrder
,
//取消订单
regressSourceClass
,
//拆分订单回到原班
setStudyAboradOrderConfirm
,
//留学订单确认
}
from
'../../../api/sale/sale'
import
{
queryEmployee
//员工列表
}
from
'../../../api/users/user'
import
{
SetOrderReceiveContract
,
//领取合同
SetEducationContractAudit
}
from
'../../../api/sale/contract'
import
{
getTeacherDropDownList
}
from
'../../../api/school/index'
export
default
{
components
:
{
editorderForm
,
orderremarkForm
,
transOrderForm
,
myOrderForm
,
classinfoForm
,
backclassForm
,
moneyForm
,
continueclassForm
,
viewquotationForm
,
eduinfoForm
,
studyorderForm
,
transferclassForm
},
props
:
{
//正常订单
dataList
:
{
type
:
Array
,
default
:
()
=>
[]
},
//取消订单
cancelList
:
{
type
:
Array
,
default
:
null
},
//权限数据
authObj
:
{
type
:
Object
,
},
//修改订单类型
modityOrderType
:
{
type
:
Number
,
default
:
0
,
//1-销售修改,2-OP修改,3-总经理修改
},
isShowEditBtn
:
{
type
:
Number
,
default
:
null
},
viewType
:
{
type
:
Number
,
default
:
0
},
//因为今天订单 取消了一些操作
comefrom
:
{
//来自 1是来自 学管今日订单
type
:
Number
,
default
:
0
},
},
data
()
{
return
{
isShowEditOrderForm
:
false
,
//是否显示订单修改
isShowStudyOrderForm
:
false
,
//是否显示留学就业订单
isShowRemarkOrderForm
:
false
,
//是否线下修改订单备注
isShowTransOrderForm
:
false
,
//是否显示转交订单
isShowBackClassForm
:
false
,
//是否显示退课申请
isShowContinueClass
:
false
,
//是否显示续课申请
orderObj
:
{},
//订单信息
isShowCancel
:
false
,
//是否显示取消订单
remarkType
:
0
,
//备注类型
isShowmyorderForm
:
false
,
//显示详情
myorderObjOption
:
{},
//详情的数据
classObjOption
:
null
,
isShowClassInfo
:
false
,
//是否显示课程信息
isShowMoney
:
false
,
//是否显示修改提成和额外奖励
moneyObj
:
{},
//额外提成
CommonType
:
-
1
,
//用于判断是修改提成还是额外奖励
EmployeeList
:
[],
//员工列表
isShowviewQuo
:
false
,
//是否显示报价单
offerId
:
0
,
//报价单编号
//权限显示对象
AuthorityObj
:
{
isShowName
:
true
,
//是否显示班级、留学就业产品名称【默认显示】
isShowGuestBtn
:
0
,
//是否显示学员名单新增按钮【0-不显示,1-显示】
isShowFinanceBtn
:
false
,
//是否显示财务单据录入按钮【true显示,false不显示】
isShowTransOrder
:
false
,
//是否显示转交订单【true显示,false不显示】
isShowEditSale
:
false
,
//是否显示修改销售按钮【true显示,false不显示】
isShowSaleRemark
:
false
,
//是否显示修改销售备注按钮
isShowEducationRemark
:
false
,
//是否显示修改教务备注按钮
isShowPrincipalRemark
:
false
,
//是否显示修改校长备注按钮
isShowManagerRemark
:
false
,
//是都显示总经理备注
isShowCommissionEdit
:
false
,
//是否显示修改提成按钮
isShowRewardEdit
:
false
,
//是否显示修改额外提成按钮
isShowBackClass
:
false
,
//是否显示退课按钮
isShowRenewClass
:
false
,
//是否显示续课按钮
isShowContract
:
true
,
//是否显示合同
isShowEdit
:
true
,
//是否显示修改订单按钮
isShowTransClassOrder
:
false
,
//是否显示转班按钮
isShowSeparater
:
false
,
//是否显示分拆
isshoworderconfirm
:
false
,
//留学的订单确认按钮
},
isShowEduForm
:
false
,
//是否显示新增修改合同弹窗
eduObj
:
{},
//合同信息
isShowPop
:
false
,
//是否显示查看合同
showChooseStudent
:
false
,
//收款单据,是否显示单选学生
chooseStudent
:
""
,
//收款单据,单选学生
isShowReward
:
false
,
// 是否可以修改额外金额
isEditOrder
:
false
,
//是否有【总经理】修改订单但权限
newModityOrderType
:
0
,
isChaBan
:
0
,
//是否插班(0-正常报入,1-插班报入)
isShowTransferClass
:
false
,
//是否显示转班
ChangeType
:
1
,
//1-转班 2-分拆
isShowteacher
:
false
,
//关联教师显示
teacherMsg
:
{
OrderId
:
0
,
HelpEnterId
:
''
,
},
//关联老师参数
TeacherList
:
[],
//下拉老师
isShowContract
:
false
,
imgViewUrl
:
''
,
imgViewList
:
[],
initialIndex
:
0
,
loading
:
false
,
columns
:
[
{
name
:
"OrderId"
,
label
:
"订单号"
,
field
:
"OrderId"
,
align
:
"left"
},
{
name
:
"ClassName"
,
label
:
"班级"
,
align
:
"left"
,
field
:
"ClassName"
},
{
name
:
"CourseName"
,
label
:
"课程"
,
field
:
"CourseName"
,
align
:
"left"
},
{
name
:
"PreferPrice"
,
label
:
"应收"
,
field
:
"PreferPrice"
,
align
:
"left"
,
},
{
name
:
"DiscountMoney"
,
label
:
"实收"
,
field
:
"DiscountMoney"
,
align
:
"left"
},
{
name
:
"OrderStateName"
,
label
:
"状态"
,
field
:
"OrderStateName"
,
align
:
"left"
},
{
name
:
"GuestList"
,
label
:
"学生名单"
,
field
:
"GuestList"
,
align
:
"left"
,
style
:
'width: 200px'
,
},
],
msg
:{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
},
}
},
created
()
{
this
.
initAuth
();
this
.
Employee
();
this
.
GetTeacherList
()
//获取老师数据
var
localStorageData
=
window
.
localStorage
[
"loginUserInfo"
];
let
ActionMenuList
=
JSON
.
parse
(
localStorageData
).
data
.
ActionMenuList
if
(
ActionMenuList
&&
ActionMenuList
.
length
>
0
)
{
ActionMenuList
.
forEach
(
x
=>
{
if
(
x
.
FunctionCode
==
'Edit_OrderExtraMoney'
)
{
this
.
isShowReward
=
true
}
if
(
x
.
FunctionCode
==
'Edit_Order'
)
{
this
.
isEditOrder
=
true
}
})
}
},
watch
:
{
modityOrderType
:
{
handler
(
newValue
)
{
var
localStorageData
=
window
.
localStorage
[
"loginUserInfo"
];
let
ActionMenuList
=
JSON
.
parse
(
localStorageData
).
data
.
ActionMenuList
var
isNewEditOrder
=
false
;
if
(
ActionMenuList
&&
ActionMenuList
.
length
>
0
)
{
ActionMenuList
.
forEach
(
x
=>
{
if
(
x
.
FunctionCode
==
'Edit_Order'
)
{
isNewEditOrder
=
true
}
})
}
if
(
isNewEditOrder
)
{
this
.
newModityOrderType
=
3
;
}
else
{
this
.
newModityOrderType
=
newValue
;
}
},
immediate
:
true
}
},
mounted
()
{},
methods
:
{
//点击合同编号预览
getShowContract
(
item
)
{
this
.
isShowPop
=
false
;
if
(
item
.
ContractUrlList
.
length
>
0
)
{
//预览图片
if
(
item
.
ContractType
==
2
)
{
this
.
isShowContract
=
true
;
this
.
imgViewUrl
=
item
.
ContractUrlList
[
0
];
this
.
imgViewList
=
item
.
ContractUrlList
;
}
if
(
item
.
ContractType
==
1
)
{
this
.
previewPDF
(
item
.
ContractUrlList
[
0
]);
}
}
},
//初始化权限信息
initAuth
()
{
if
(
this
.
authObj
)
{
if
(
this
.
authObj
.
isShowName
!=
null
&&
!
this
.
authObj
.
isShowName
)
{
this
.
AuthorityObj
.
isShowName
=
this
.
authObj
.
isShowName
;
}
if
(
this
.
authObj
.
isShowGuestBtn
!=
null
&&
this
.
authObj
.
isShowGuestBtn
>
0
)
{
this
.
AuthorityObj
.
isShowGuestBtn
=
this
.
authObj
.
isShowGuestBtn
;
}
if
(
this
.
authObj
.
isShowFinanceBtn
!=
null
&&
this
.
authObj
.
isShowFinanceBtn
)
{
this
.
AuthorityObj
.
isShowFinanceBtn
=
this
.
authObj
.
isShowFinanceBtn
;
}
if
(
this
.
authObj
.
isShowTransOrder
!=
null
&&
this
.
authObj
.
isShowTransOrder
)
{
this
.
AuthorityObj
.
isShowTransOrder
=
this
.
authObj
.
isShowTransOrder
;
}
if
(
this
.
authObj
.
isShowEditSale
!=
null
&&
this
.
authObj
.
isShowEditSale
)
{
this
.
AuthorityObj
.
isShowEditSale
=
this
.
authObj
.
isShowEditSale
;
}
if
(
this
.
authObj
.
isShowSaleRemark
!=
null
&&
this
.
authObj
.
isShowSaleRemark
)
{
this
.
AuthorityObj
.
isShowSaleRemark
=
this
.
authObj
.
isShowSaleRemark
;
}
if
(
this
.
authObj
.
isShowEducationRemark
!=
null
&&
this
.
authObj
.
isShowEducationRemark
)
{
this
.
AuthorityObj
.
isShowEducationRemark
=
this
.
authObj
.
isShowEducationRemark
;
}
if
(
this
.
authObj
.
isShowPrincipalRemark
!=
null
&&
this
.
authObj
.
isShowPrincipalRemark
)
{
this
.
AuthorityObj
.
isShowPrincipalRemark
=
this
.
authObj
.
isShowPrincipalRemark
;
}
if
(
this
.
authObj
.
isShowManagerRemark
!=
null
&&
this
.
authObj
.
isShowManagerRemark
)
{
this
.
AuthorityObj
.
isShowManagerRemark
=
this
.
authObj
.
isShowManagerRemark
;
}
if
(
this
.
authObj
.
isShowCommissionEdit
!=
null
&&
this
.
authObj
.
isShowCommissionEdit
)
{
this
.
AuthorityObj
.
isShowCommissionEdit
=
this
.
authObj
.
isShowCommissionEdit
;
}
if
(
this
.
authObj
.
isShowRewardEdit
!=
null
&&
this
.
authObj
.
isShowRewardEdit
)
{
this
.
AuthorityObj
.
isShowRewardEdit
=
this
.
authObj
.
isShowRewardEdit
;
}
if
(
this
.
authObj
.
isShowBackClass
!=
null
&&
this
.
authObj
.
isShowBackClass
)
{
this
.
AuthorityObj
.
isShowBackClass
=
this
.
authObj
.
isShowBackClass
;
}
if
(
this
.
authObj
.
isShowRenewClass
!=
null
&&
this
.
authObj
.
isShowRenewClass
)
{
this
.
AuthorityObj
.
isShowRenewClass
=
this
.
authObj
.
isShowRenewClass
;
}
if
(
this
.
authObj
.
isShowEdit
!=
null
&&
!
this
.
authObj
.
isShowEdit
)
{
this
.
AuthorityObj
.
isShowEdit
=
this
.
authObj
.
isShowEdit
;
}
if
(
this
.
authObj
.
isShowTransClassOrder
!=
null
&&
this
.
authObj
.
isShowTransClassOrder
)
{
this
.
AuthorityObj
.
isShowTransClassOrder
=
this
.
authObj
.
isShowTransClassOrder
;
}
if
(
this
.
authObj
.
isShowSeparater
!=
null
&&
this
.
authObj
.
isShowSeparater
)
{
this
.
AuthorityObj
.
isShowSeparater
=
this
.
authObj
.
isShowSeparater
;
}
if
(
this
.
authObj
.
isshoworderconfirm
!=
null
&&
this
.
authObj
.
isshoworderconfirm
)
{
this
.
AuthorityObj
.
isshoworderconfirm
=
this
.
authObj
.
isshoworderconfirm
;
}
}
},
//回归原班
backSourceClass
(
item
)
{
var
backMsg
=
{
OrderId
:
item
.
OrderId
};
var
that
=
this
;
this
.
$q
.
dialog
({
title
:
"回归原班"
,
message
:
"你正在进行订单回归原班级操作,是否确认执行"
,
persistent
:
true
,
cancel
:
{
label
:
"取消"
,
flat
:
true
},
ok
:
{
label
:
"确认执行"
,
flat
:
true
,
focus
:
true
}
}).
onOk
(()
=>
{
regressSourceClass
(
backMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
that
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'操作成功'
,
position
:
'top'
})
that
.
refreshOrder
();
}
})
});
},
//关闭报价单
closeQuota
()
{
this
.
isShowviewQuo
=
false
;
},
//跳转到报价单
goQuotation
(
Id
)
{
this
.
OpenNewUrl
(
"/sale/quotation"
,
{
Id
:
Id
});
},
//跳转到预约单号
goVisitorReser
(
Id
)
{
this
.
OpenNewUrl
(
"/sale/appointManagement"
,
{
Id
:
Id
});
},
//弹出退课名单
getTkshow
(
data
)
{
let
Tkshow
=
false
;
if
(
data
&&
data
.
length
>
0
)
{
data
.
forEach
(
x
=>
{
if
(
x
.
GuestState
==
2
)
{
Tkshow
=
true
}
});
}
return
Tkshow
},
//关闭退课申请
closeBackClassForm
()
{
this
.
orderObj
=
{};
this
.
isShowBackClassForm
=
false
;
},
//显示退课申请
showBackClassForm
(
item
)
{
this
.
orderObj
=
item
;
this
.
isShowBackClassForm
=
true
;
},
//显示续课申请
showContinueClass
(
item
)
{
this
.
orderObj
=
item
;
this
.
isShowContinueClass
=
true
;
},
//关闭续课申请
closeContinueClassForm
()
{
this
.
orderObj
=
{};
this
.
isShowContinueClass
=
false
;
},
//转班
transferClass
(
item
,
type
)
{
this
.
orderObj
=
item
;
this
.
ChangeType
=
type
;
this
.
isShowTransferClass
=
true
;
},
//关闭转班
closeTransferClassForm
()
{
this
.
orderObj
=
{};
this
.
isShowTransferClass
=
false
;
},
//获取员工列表
Employee
()
{
var
qMsg
=
{
EmployeeName
:
''
}
queryEmployee
(
qMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
EmployeeList
=
res
.
Data
;
}
})
},
//获取财务单据
getOrderFinanceList
(
msg
,
type
)
{
this
.
apipost
(
'sellorder_post_GetOrderFinanceListForEdu'
,
{
OrderIds
:
msg
},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
let
data
=
res
.
data
.
data
;
if
(
type
==
1
)
{
if
(
this
.
dataList
)
{
this
.
dataList
.
forEach
(
x
=>
{
data
.
forEach
(
j
=>
{
if
(
x
.
OrderId
==
j
.
OrderId
)
{
x
.
FinanceList
=
j
.
FinanceList
x
.
RefundFinanceList
=
j
.
RefundFinanceList
}
})
})
}
}
else
if
(
type
==
2
)
{
if
(
this
.
cancelList
&&
this
.
cancelList
.
length
>
0
)
{
this
.
cancelList
.
forEach
(
x
=>
{
data
.
forEach
(
j
=>
{
if
(
x
.
OrderId
==
j
.
OrderId
)
{
x
.
FinanceList
=
j
.
FinanceList
x
.
RefundFinanceList
=
j
.
RefundFinanceList
}
})
})
}
}
this
.
$forceUpdate
()
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{})
},
//显示订单详情
goOrderdetails
(
item
,
tab
)
{
item
.
tab
=
tab
this
.
myorderObjOption
=
item
;
this
.
isShowmyorderForm
=
true
;
},
//关闭订单详情
closeMOSaveForm
()
{
this
.
isShowmyorderForm
=
false
;
},
//订单转交
transferOrder
(
item
,
type
)
{
item
.
type
=
type
this
.
orderObj
=
item
;
this
.
isShowTransOrderForm
=
true
;
},
//关闭转订单弹窗
closeTransOrderForm
()
{
this
.
isShowTransOrderForm
=
false
;
},
//跳转到学生名单
gostudent
(
item
)
{
var
tempStr
=
'/sale/studentList'
;
this
.
$router
.
push
({
path
:
tempStr
,
query
:
{
OrderId
:
item
.
OrderId
,
ClassId
:
item
.
ClassId
,
SourceId
:
item
.
SourceId
,
isShow
:
this
.
AuthorityObj
.
isShowGuestBtn
}
});
},
//修改订单备注
editOrderRemark
(
item
,
Type
)
{
this
.
orderObj
=
item
;
this
.
remarkType
=
Type
;
this
.
isShowRemarkOrderForm
=
true
;
},
//关闭备注
closeRemarkForm
()
{
this
.
isShowRemarkOrderForm
=
false
;
},
//关闭订单修改
closeOrderSaveForm
()
{
this
.
isShowEditOrderForm
=
false
;
this
.
isShowStudyOrderForm
=
false
;
},
//显示修改订单
editOrder
(
item
)
{
this
.
orderObj
=
item
;
//课程订单
if
(
item
.
OrderType
==
1
)
{
this
.
isShowEditOrderForm
=
true
;
}
else
{
//留学就业订单
this
.
isShowStudyOrderForm
=
true
;
}
this
.
isChaBan
=
item
.
JoinType
==
2
?
1
:
0
;
},
//刷新页面
refreshOrder
()
{
this
.
isShowEditOrderForm
=
false
;
this
.
isShowMoney
=
false
;
this
.
isShowStudyOrderForm
=
false
;
//调用父页面成功方法
this
.
$emit
(
'success'
);
},
//关闭修改提成和额外奖励
closeMoneyForm
()
{
this
.
moneyObj
=
{};
this
.
isShowMoney
=
false
;
},
//取消订单
CancelOrder
(
item
)
{
let
that
=
this
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'<span style="color: var(--q-color-negative)">是否取消此订单</span>'
,
cancel
:
true
,
persistent
:
true
,
html
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
cancelClassOrder
({
OrderId
:
item
.
OrderId
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
that
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'操作成功'
,
position
:
'top'
})
//调用父页面成功方法
this
.
$emit
(
'success'
);
}
})
})
},
//财务单据
chanceType
(
obj
,
type
)
{
let
TCIDARR
=
[]
if
(
obj
&&
obj
.
OrderType
==
2
)
{
//留学就业订单
TCIDARR
.
push
(
obj
.
SourceId
);
}
else
{
//班级课程订单
TCIDARR
.
push
(
obj
.
ClassId
);
}
var
orderObj
=
{
OrderID
:
obj
.
OrderId
,
OrderSource
:
17
,
Obj
:
{},
SourceID
:
0
,
TCIDList
:
TCIDARR
}
if
(
obj
.
OfferId
>
0
)
{
orderObj
.
OtherType
=
29
;
orderObj
.
ReFinanceId
=
obj
.
OfferId
;
}
if
(
obj
.
OrderType
==
1
&&
this
.
chooseStudent
==
""
)
{
this
.
$q
.
notify
({
icon
:
'close'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'请选择学生'
,
position
:
'top'
})
return
}
if
(
obj
.
OrderType
==
1
&&
this
.
chooseStudent
==
""
)
{
this
.
$q
.
notify
({
icon
:
'close'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'请选择学生'
,
position
:
'top'
})
return
}
let
ContractNo
=
''
if
(
obj
&&
obj
.
GuestList
.
length
>
0
)
{
obj
.
GuestList
.
forEach
(
x
=>
{
if
(
this
.
chooseStudent
==
x
.
Id
)
{
ContractNo
=
x
.
ContractNo
}
})
}
if
(
obj
.
OrderType
==
1
&&
ContractNo
==
''
)
{
this
.
$q
.
notify
({
icon
:
'close'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'请完善合同信息'
,
position
:
'top'
})
return
}
//留学就业订单
if
(
obj
&&
obj
.
OrderType
==
2
)
{
//财务单据类型【教育留学】
orderObj
.
OrderSource
=
18
;
}
var
guestId
=
0
;
if
(
this
.
chooseStudent
!=
""
)
{
guestId
=
this
.
chooseStudent
;
}
this
.
$router
.
push
({
path
:
'/financial/financalDocument/ChoiceAddFinancialDocuments'
,
query
:
{
"Type"
:
type
,
"companyID"
:
obj
.
ClassSchoolId
,
"path"
:
""
,
'blank'
:
'y'
,
'orderObj'
:
JSON
.
stringify
(
orderObj
),
'tradeWay'
:
obj
.
tradeWay
,
"GuestId"
:
guestId
}
});
},
chanceType_lx
(
obj
)
{
//留学的时 成本制单
let
TCIDARR
=
[]
if
(
obj
&&
obj
.
OrderType
==
2
)
{
//留学就业订单
TCIDARR
.
push
(
obj
.
SourceId
);
}
else
{
}
var
orderObj
=
{
OrderID
:
obj
.
OrderId
,
OrderSource
:
17
,
Obj
:
{},
SourceID
:
0
,
TCIDList
:
TCIDARR
}
orderObj
.
OtherType
=
45
;
//成本单据
if
(
obj
.
OfferId
>
0
)
{
orderObj
.
ReFinanceId
=
obj
.
OfferId
;
}
let
ContractNo
=
''
if
(
obj
&&
obj
.
GuestList
.
length
>
0
)
{
obj
.
GuestList
.
forEach
(
x
=>
{
if
(
this
.
chooseStudent
==
x
.
Id
)
{
ContractNo
=
x
.
ContractNo
}
})
}
//留学就业订单
if
(
obj
&&
obj
.
OrderType
==
2
)
{
//财务单据类型【教育留学】
orderObj
.
OrderSource
=
18
;
}
var
guestId
=
0
;
if
(
this
.
chooseStudent
!=
""
)
{
guestId
=
this
.
chooseStudent
;
}
this
.
$router
.
push
({
path
:
'/financial/financalDocument/ChoiceAddFinancialDocuments'
,
query
:
{
"Type"
:
2
,
"companyID"
:
obj
.
ClassSchoolId
,
"path"
:
""
,
'blank'
:
'y'
,
'orderObj'
:
JSON
.
stringify
(
orderObj
),
'tradeWay'
:
obj
.
tradeWay
,
"GuestId"
:
guestId
}
});
},
//打开班级详情组件
getClassInfo
(
obj
)
{
this
.
classObjOption
=
obj
;
this
.
classObjOption
.
School_Id
=
this
.
classObjOption
.
ClassSchoolId
this
.
isShowClassInfo
=
true
;
},
//关闭班级信息弹窗
closeClass
()
{
this
.
isShowClassInfo
=
false
},
//修改提成-奖励
upDateMoney
(
item
,
type
)
{
this
.
moneyObj
=
item
;
this
.
CommonType
=
type
;
this
.
isShowMoney
=
true
;
},
//关闭弹窗
closeEdudia
()
{
this
.
isShowEduForm
=
false
},
//刷新页面
refreshPage
()
{
this
.
refreshOrder
();
},
//领取合同
takeContract
(
item
)
{
let
msg
=
{
OrderId
:
item
.
OrderId
,
GuestId
:
0
}
SetOrderReceiveContract
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'操作成功'
,
position
:
'top'
})
//调用父页面成功方法
this
.
$emit
(
'success'
);
}
}).
catch
(()
=>
{})
},
takeContractTwo
(
item
,
subItem
)
{
let
obj
=
{
OrderId
:
item
.
OrderId
,
GuestId
:
subItem
.
Id
,
ContractId
:
subItem
.
ContractId
}
this
.
eduObj
=
obj
;
this
.
isShowPop
=
false
;
this
.
isShowEduForm
=
true
;
},
//跳转至合同管理
goContractMannage
(
subItem
)
{
this
.
OpenNewUrl
(
"/contractView"
,
{
ContractId
:
subItem
.
ContractId
});
},
gourltx
(
obj
)
{
if
(
obj
.
OrderType
==
1
)
{
this
.
OpenNewUrl
(
"/financial/cycleOrderList"
,
{
OrderId
:
obj
.
OrderId
});
}
else
{
this
.
OpenNewUrl
(
"/financial/studyabroad/ordercommission"
,
{
OrderId
:
obj
.
OrderId
});
}
},
//合同提交审核
goContractAudit
(
subItem
)
{
let
msg
=
{
ContractId
:
subItem
.
ContractId
,
State
:
1
}
SetEducationContractAudit
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'修改成功!'
,
position
:
'top'
})
this
.
$emit
(
'success'
);
}
})
},
//获取教师下拉
GetTeacherList
()
{
var
qMsg
=
{
AccountTypeStr
:
2
}
queryEmployee
(
qMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
}
})
},
gettanchuteacher
(
item
)
{
this
.
isShowteacher
=
true
this
.
teacherMsg
.
OrderId
=
item
.
OrderId
;
this
.
teacherMsg
.
HelpEnterId
=
item
.
HelpEnterId
>
0
?
item
.
HelpEnterId
:
''
;
},
setCheckStatus
()
{
if
(
this
.
teacherMsg
.
HelpEnterId
==
0
||
this
.
teacherMsg
.
HelpEnterId
==
''
)
{
this
.
$q
.
notify
({
icon
:
'close'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'请选择关联老师'
,
position
:
'top'
})
return
}
setOrderHelpEnterId
(
this
.
teacherMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'操作成功'
,
position
:
'top'
})
//调用父页面成功方法
this
.
isShowteacher
=
false
this
.
$emit
(
'success'
);
}
})
},
studyabroadorderconfirmation
(
item
)
{
//留学订单确认
let
that
=
this
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'<span style="color: var(--q-color-negative)">是否完成此订单</span>'
,
cancel
:
true
,
persistent
:
true
,
html
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
setStudyAboradOrderConfirm
({
OrderId
:
item
.
OrderId
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
that
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'操作成功'
,
position
:
'top'
})
//调用父页面成功方法
this
.
$emit
(
'success'
);
}
})
})
},
}
}
</
script
>
<
style
>
li
{
list-style-type
:
none
;
}
.b2bclassorder
ul
{
padding
:
0px
}
.b2bclassorder
.price-popup
{
border-radius
:
4px
;
}
.b2bclassorder
.el-range-editor
.el-range-input
{
background
:
none
;
}
.b2bclassorder
.el-range-editor.el-input__inner
{
background-color
:
transparent
;
}
.b2bclassorder
.q-mb-md
{
margin-bottom
:
0
;
}
.b2bclassorder
.stics
{
padding
:
10px
20px
;
background
:
#DDDEE0
;
border-radius
:
4px
;
font-size
:
14px
;
color
:
#000000
;
font-weight
:
bold
}
.b2bclassorder
.stics
.stics-name
{
color
:
#2D2D2D
;
font-weight
:
600
;
margin-right
:
10px
}
.b2bclassorder
.tis
{
margin
:
10px
0
;
align-items
:
center
}
.b2bclassorder
.tis
.tis-k
{
width
:
10px
;
height
:
10px
;
margin-right
:
8px
}
.b2bclassorder
.tis
span
{
font-size
:
14px
;
color
:
#2D2D2D
;
font-weight
:
600
;
margin-right
:
20px
}
.b2bclassorder
.enrollTotalSearchTable
{
width
:
100%
;
font-size
:
14px
;
color
:
#333
;
border-bottom
:
1px
solid
#cccccc
;
border-right
:
1px
solid
#cccccc
;
border-collapse
:
collapse
;
}
.b2bclassorder
.enrollTotalSearchTable
tr
{
/* border-bottom: 2px solid #333; */
}
.b2bclassorder
.enrollTotalSearchTable
tr
th
{
background
:
#DDDEE0
;
height
:
30px
;
font-size
:
12px
;
text-align
:
center
;
}
.b2bclassorder
.enrollTotalSearchTable
tr
{
background
:
#fff
;
text-align
:
left
;
}
.b2bclassorder
.enrollTotalSearchTable
tbody
tr
:last-child
{
border-bottom
:
2px
solid
#333
;
}
.b2bclassorder
.enrollTotalSearchTable
tr
:first-child
td
:first-child
{
border-bottom
:
2px
solid
#333
;
}
.b2bclassorder
.enrollTotalSearchTable
tr
td
{
height
:
66px
;
padding
:
10px
;
/*border-top: 1px solid #cccccc;*/
/*border-left: 1px solid #cccccc;*/
}
.b2bclassorder
.enrollTotalSearchTable
tr
td
>
img
{
width
:
32px
;
height
:
32px
;
border-radius
:
16px
;
vertical-align
:
middle
;
margin-right
:
5px
;
}
.b2bclassorder
.enrollTotalSearchTable
tr
td
p
{
line-height
:
20px
;
}
.b2bclassorder
.remarks
{
font-size
:
14px
;
color
:
#2D2D2D
;
}
.b2bclassorder
.remarks-b
{
width
:
100%
;
height
:
94px
;
background
:
#F0F5FB
;
margin-top
:
10px
;
padding
:
15px
;
font-size
:
12px
;
color
:
#999999
;
position
:
relative
;
overflow
:
hidden
;
display
:
-webkit-box
;
line-height
:
20px
;
-webkit-line-clamp
:
4
;
-webkit-box-orient
:
vertical
;
}
.b2bclassorder
.remarks-b-b
{
text-align
:
right
;
position
:
absolute
;
right
:
0px
;
bottom
:
0px
}
.b2bclassorder
.on-left
{
margin-right
:
5px
;
}
.b2bclassorder
.finance
{
padding
:
1px
10px
;
align-items
:
center
;
justify-content
:
center
;
border-radius
:
4px
;
margin
:
5px
3px
3px
0
;
}
.b2bclassorder
.order_OfferId
{
font-size
:
18px
;
color
:
#2961FE
;
margin-bottom
:
10px
;
font-weight
:
bold
;
text-decoration
:
underline
;
cursor
:
pointer
}
.takeContract
{
cursor
:
pointer
;
color
:
rgb
(
41
,
97
,
254
);
}
.Contract_Table
{
width
:
100%
;
border-collapse
:
collapse
;
}
.Contract_Table
th
,
.Contract_Table
td
{
padding
:
5px
;
color
:
#000
;
text-align
:
center
;
}
.table-body
{
height
:
590px
;
overflow-x
:
hidden
;
overflow-y
:
auto
;
}
.b2bclassorder
.redstyle
{
color
:
var
(
--q-color-negative
);
}
.order_OferTitle
{
font-size
:
14px
;
color
:
#333333
;
margin-bottom
:
10px
;
}
</
style
>
<
style
lang=
"scss"
>
.
b2bclassorder
:
:-
webkit-scrollbar
{
width
:
5px
;
height
:
5px
;
}
.
b2bclassorder
:
:-
webkit-scrollbar-track
{
background
:
#fff
;
border-radius
:
2px
;
}
.
b2bclassorder
:
:-
webkit-scrollbar-thumb
{
background
:
#444
;
border-radius
:
10px
;
}
.
b2bclassorder
:
:-
webkit-scrollbar-thumb
:
hover
{
background
:
#999
;
}
.
b2bclassorder
:
:-
webkit-scrollbar-corner
{
background
:
#204754
;
}
.b2bclassorder
.q-table__bottom
{
min-height
:
0px
;
}
</
style
>
\ No newline at end of file
src/components/sale/peerInfo/baseInfo.vue
0 → 100644
View file @
61ae4e05
<
template
>
<div
class=
"q-pa-md"
>
<div
class=
"text-h6"
>
基础资料
</div>
<!-- 类型 -->
<div
class=
"q-my-sm"
v-if=
"editField=='CustomerType'"
>
<div
class=
"flex justify-between items-center q-mb-sm"
>
<span>
类型
</span>
<div>
<q-btn
size=
"sm"
text-color=
"primary"
label=
"取消"
@
click=
"showEdit('')"
></q-btn>
<q-btn
size=
"sm"
color=
"primary"
label=
"确定"
class=
"q-ml-sm"
@
click=
"save('CustomerType',Data.CustomerType)"
></q-btn>
</div>
</div>
<q-select
outlined
dense
stack-label
label=
"类型"
@
input=
"getCustomList(Data.CustomerType)"
option-value=
"Id"
option-label=
"Name"
:rules=
"[val => !!val || '请选择类型']"
:options=
"options"
v-model=
"Data.CustomerType"
emit-value
map-options
/>
</div>
<div
class=
"flex justify-between items-center q-my-lg"
v-else
@
click=
"showEdit('CustomerType')"
>
<span>
类型
</span>
<span
v-if=
"Data.CustomerType==1"
>
企业
</span>
<span
v-if=
"Data.CustomerType==2"
>
学校
</span>
<span
v-if=
"Data.CustomerType==3"
>
个人
</span>
<span
v-if=
"Data.CustomerType==4"
>
其他
</span>
</div>
</div>
</
template
>
<
script
>
import
{
GetCatetoryTypeList
,
queryCustomerCategoryList
}
from
"../../../api/users/user"
;
export
default
{
components
:
{},
props
:
{
Data
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
editField
:
""
,
options
:
[],
sexOptions
:
[{
label
:
"男"
,
value
:
1
,
},
{
label
:
"女"
,
value
:
2
,
}],
customList
:[]
}
},
mounted
(){
if
(
this
.
Data
.
CustomerType
){
this
.
getCustomList
(
this
.
Data
.
CustomerType
);
}
this
.
getTypeList
();
},
methods
:
{
showEdit
(
field
)
{
this
.
editField
=
field
},
save
(
field
,
val
,
Validate
=
false
){
if
(
Validate
){
this
.
$refs
[
field
].
validate
();
if
(
this
.
$refs
[
field
].
hasError
)
return
}
const
obj
=
{
field
,
val
}
this
.
$emit
(
"confirm"
,
obj
)
this
.
editField
=
''
},
getTypeList
()
{
GetCatetoryTypeList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
options
=
res
.
Data
;
}
})
},
getCustomList
(
Type
){
let
msg
=
{
CategoryName
:
""
,
CatetoryType
:
Type
}
this
.
Data
.
CategoryId
=
''
;
this
.
Data
.
EnterpriseName
=
''
;
queryCustomerCategoryList
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customList
=
res
.
Data
;
}
})
},
getName
(
Id
){
let
Name
=
''
this
.
customList
.
forEach
(
x
=>
{
if
(
x
.
CategoryId
==
Id
){
Name
=
x
.
CategoryName
}
})
return
Name
;
}
}
}
</
script
>
<
style
>
.ellepsis
{
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
</
style
>
src/components/sale/peerInfo/conRight.vue
0 → 100644
View file @
61ae4e05
<
template
>
<div
class=
"q-pa-md"
>
<q-tabs
v-model=
"tabs"
active-color=
"primary"
align=
"left"
style=
"width:400px;"
>
<q-tab
:name=
"1"
label=
"客户"
/>
<q-tab
:name=
"2"
label=
"订单"
/>
<q-tab
:name=
"3"
label=
"返佣"
/>
<q-tab
:name=
"4"
label=
"幸福存折"
/>
</q-tabs>
<div
class=
"q-mb-lg"
>
<customer
:Id=
"Id"
v-if=
"tabs === 1"
></customer>
<order
:Id=
"Id"
v-if=
"tabs === 2"
></order>
<rakeback
:Id=
"Id"
v-if=
"tabs === 3"
></rakeback>
<passbook
:Id=
"Id"
v-if=
"tabs === 4"
></passbook>
</div>
</div>
</
template
>
<
script
>
import
customer
from
"./customer"
;
import
order
from
"./order"
;
import
passbook
from
"./passbook"
;
import
rakeback
from
"./rakeback"
;
export
default
{
components
:
{
customer
,
order
,
rakeback
,
passbook
},
props
:
{
Id
:
{
type
:
Number
,
default
:
0
},
},
data
()
{
return
{
tabs
:
1
,
};
},
mounted
()
{
},
};
</
script
>
src/components/sale/peerInfo/customer.vue
0 → 100644
View file @
61ae4e05
<
template
>
<div
class=
"b2bcustomer"
>
<div
class=
"full-width flex no-wrap items-center q-mb-sm"
>
<q-tabs
v-model=
"msg.StuStage"
active-color=
"primary"
dense
outside-arrows
align=
"left"
style=
"width:70%"
@
input=
"getStudent"
>
<q-tab
v-for=
"(item, index) in stagelist"
:key=
"index"
:name=
"item.StuStage"
>
{{
item
.
StuStageName
}}
(
{{
item
.
StuNum
}}
)
</q-tab>
</q-tabs>
<q-input
outlined
dense
v-model=
"msg.StuName"
label=
"昵称"
@
input=
"getStudent"
/>
</div>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table"
separator=
"none"
:data=
"list"
:columns=
"columns"
row-key=
"Id"
>
<!--
<template
v-slot:body-cell-StuIcon=
"props"
>
<q-td
auto-width
:props=
"props"
>
<q-avatar
size=
"md"
v-if=
"props.value"
>
<img
:src=
"props.value"
/>
</q-avatar>
<q-avatar
size=
"md"
color=
"teal-10"
text-color=
"white"
v-if=
"!props.value"
>
{{
props
.
row
.
StuName
.
substring
(
0
,
1
)
}}
</q-avatar
>
</q-td>
</
template
>
-->
<
template
v-slot:body-cell-StuName=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row)"
>
{{
props
.
value
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-StuSex=
"props"
>
<q-td
:props=
"props"
>
<q-badge
:color=
"props.value == 1 ? 'negative' : 'primary'"
:label=
"props.value == 1 ? '女' : '男'"
/>
</q-td>
</
template
>
<
template
v-slot:body-cell-Status=
"props"
>
<q-td
:props=
"props"
>
<q-toggle
size=
"md"
color=
"primary"
:false-value=
"1"
:true-value=
"0"
v-model=
"props.row.Status"
title=
"注意:关闭后,学员将无法正常使用."
@
input=
"deleteStudentInfo(props.row)"
/>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
<stuDetail
v-if=
"isShowStuRight"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
></stuDetail>
</div>
</template>
<
script
>
import
{
getStudentPage
}
from
"../../../api/school"
;
import
{
getCustomerStuStageStatistics
}
from
"../../../api/sale/peemanagement"
;
import
stuDetail
from
"../../../components/school/student/studentRight-form"
;
export
default
{
components
:
{
stuDetail
},
props
:
{
Id
:
{
type
:
Number
,
default
:
0
}
},
data
()
{
return
{
loading
:
false
,
list
:
[],
pageCount
:
0
,
columns
:
[
// {
// name: "StuIcon",
// label: "",
// field: "StuIcon",
// align: "left"
// },
{
name
:
"StuName"
,
required
:
true
,
label
:
"昵称"
,
align
:
"left"
,
field
:
row
=>
row
.
StuName
},
{
name
:
"StuSex"
,
label
:
"性别"
,
field
:
"StuSex"
,
align
:
"left"
},
{
name
:
"StuBirthStr"
,
label
:
"出生日期"
,
field
:
"StuBirthStr"
,
align
:
"left"
},
{
name
:
"StuTel"
,
label
:
"手机号码"
,
field
:
"StuTel"
,
align
:
"left"
},
{
name
:
"CreateTypeStr"
,
label
:
"客户来源"
,
field
:
"CreateTypeStr"
,
align
:
"left"
},
{
name
:
"StuStageName"
,
label
:
"客户阶段"
,
field
:
"StuStageName"
,
align
:
"left"
},
{
name
:
"CreateTimeStr"
,
label
:
"创建时间"
,
field
:
"CreateTimeStr"
,
align
:
"left"
}
// {
// name: "CreateByName",
// label: "负责人",
// align: "left",
// field: "CreateByName"
// }
],
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
StuName
:
""
,
StuTel
:
""
,
Status
:
"-1"
,
School_Id
:
0
,
CustomerId
:
0
,
StuStage
:
0
},
stagelist
:
[],
stuOption
:
{},
isShowStuRight
:
false
};
},
methods
:
{
getStudent
()
{
this
.
msg
.
CustomerId
=
this
.
Id
;
this
.
loading
=
true
;
getStudentPage
(
this
.
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
this
.
list
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
})
.
catch
(()
=>
{
this
.
loading
=
false
;
});
},
getStage
()
{
getCustomerStuStageStatistics
({
CustomerId
:
this
.
Id
}).
then
(
res
=>
{
this
.
stagelist
=
res
.
Data
;
const
total
=
res
.
Data
.
reduce
((
pre
,
cur
)
=>
{
return
cur
.
StuNum
+
pre
;
},
0
);
const
obj
=
{
StuStage
:
0
,
StuStageName
:
"全部"
,
StuNum
:
total
};
this
.
stagelist
.
unshift
(
obj
);
});
},
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getStudent
();
},
closeStuForm
()
{
this
.
isShowStuRight
=
false
;
},
//点击学生姓名弹出
getStuRight
(
obj
)
{
if
(
obj
)
{
this
.
stuOption
=
obj
;
}
else
{
this
.
stuOption
=
{};
}
this
.
isShowStuRight
=
true
;
}
},
mounted
()
{
this
.
getStudent
();
this
.
getStage
();
}
};
</
script
>
<
style
lang=
"scss"
>
.
b2bcustomer
:
:-
webkit-scrollbar
{
width
:
5px
;
height
:
5px
;
}
.
b2bcustomer
:
:-
webkit-scrollbar-track
{
background
:
#fff
;
border-radius
:
2px
;
}
.
b2bcustomer
:
:-
webkit-scrollbar-thumb
{
background
:
#444
;
border-radius
:
10px
;
}
.
b2bcustomer
:
:-
webkit-scrollbar-thumb
:
hover
{
background
:
#999
;
}
.
b2bcustomer
:
:-
webkit-scrollbar-corner
{
background
:
#204754
;
}
</
style
>
src/components/sale/peerInfo/order.vue
0 → 100644
View file @
61ae4e05
<
template
>
<div
class=
" myOrder q-pb-lg"
>
<div
class=
"row q-my-xs"
>
<div
class=
"col-6"
>
<q-input
@
input=
"resetSearch"
clearable
filled
v-model=
"msg.OrderId"
label=
"订单号"
dense
maxlength=
"10"
/>
</div>
</div>
<div
class=
"row wrap q-gutter-xs q-my-xs"
v-if=
"data.Statistics"
>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
应收款
</span>
<span>
{{
data
.
Statistics
.
PreferPrice
?
data
.
Statistics
.
PreferPrice
:
0
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
实收款
</span>
<span>
{{
data
.
Statistics
.
Income
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
待收款
</span>
<span
style=
"color: #F72E52"
>
{{
data
.
Statistics
.
DueInMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
收客人数
</span>
<span
style=
"color:#2961FE;"
>
{{
data
.
Statistics
.
GuestNum
}}
人
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
取消人数
</span>
<span>
{{
data
.
Statistics
.
CancelNum
}}
人
</span>
</div>
</div>
<div
style=
"width:100%;overflow:auto"
>
<orderlist
:dataList=
"data.List"
:authObj=
"authObj"
@
success=
"refreshClassOrder"
:modityOrderType=
"3"
ref=
"orderL"
>
</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"
color=
"primary"
:input=
"true"
>
</q-pagination>
</div>
</div>
<classinfo-form
v-if=
"isShowClassInfo"
:seting-obj=
"classObjOption"
@
close=
"closeClass"
@
success=
"refreshClassOrder"
>
</classinfo-form>
</div>
</
template
>
<
script
>
import
{
getMyOrderStatisticsPageList
,
//获取订单列表
getOrderStateEnumList
//订单状态
}
from
"../../../api/sale/sale"
;
import
{
queryCourseDropdownList
,
getCourseSubject
}
from
"../../../api/course/index"
;
import
myOrderForm
from
"../../../components/sale/myOrder-form"
;
import
classinfoForm
from
"../../../components/course/classinfo-form"
;
import
orderlist
from
"./b2bOrderlist"
;
import
{
queryEmployee
}
from
"../../../api/users/user"
;
import
{
EduDownLoad
}
from
"../../../api/common/common"
;
export
default
{
props
:
{
Id
:
{
type
:
Number
,
default
:
0
}
},
components
:
{
myOrderForm
,
classinfoForm
,
orderlist
},
data
()
{
return
{
dialog
:
false
,
data
:
{},
loading
:
false
,
dateList
:
[],
//报名时间
dateList2
:
[],
//开班时间
msg
:
{
pageIndex
:
1
,
pageSize
:
8
,
OrderId
:
""
,
//订单号
GuestName
:
""
,
//客人名称
ClassName
:
""
,
//班级名称
CouseId
:
0
,
//课程id
StartTime
:
""
,
//报名开始时间
EndTime
:
""
,
//报名结束时间
OPStartTime
:
""
,
//开班开始时间
OPEndTime
:
""
,
//开班结束时间
Q_NotCollect
:
"0"
,
//查询未收齐 1是 0否
OrderState
:
0
,
//订单状态 枚举
Q_OrderState
:
1
,
//查询 1正常订单 2取消订单 (默认传1 如果 选择了订单状态 则传 0)
Q_OrderBy
:
2
,
//写死 =2
PlatformTax
:
0
,
//平台税金
EnterID
:
""
,
//业务员id
ClassNo
:
""
,
//班号
HelpEnterId
:
""
,
//关联教师
CourseSubject
:
""
,
//所属科目
CustomerId
:
0
},
//订单状态
OrderStateList
:
[],
pageCount
:
0
,
CourseList
:
[],
//关联课程下拉数据
classObjOption
:
null
,
isShowClassInfo
:
false
,
//是否显示课程信息
showone
:
false
,
//权限判断
authObj
:
{
isShowGuestBtn
:
0
,
//显示新增学员名单按钮
isShowFinanceBtn
:
false
,
//显示财务单据按钮
isShowTransOrder
:
false
,
//显示转交订单按钮
isShowSaleRemark
:
false
,
//显示修改销售备注
isShowBackClass
:
false
,
//显示退课按钮
isShowRenewClass
:
false
,
//显示续课按钮
isShowEdit
:
false
,
//不显示修改按钮
isShowBackClass
:
false
,
//不显示退课
isShowRenewClass
:
false
//不显示续课
},
EmployeeList
:
[],
//业务员
AllemployeeList
:
[],
TeacherList
:
[],
//关联教师
AllTeacherList
:
[],
CourseSubjectList
:
[]
//科目列表
};
},
created
()
{
if
(
this
.
$route
.
query
.
OrderId
)
{
this
.
msg
.
OrderId
=
this
.
$route
.
query
.
OrderId
;
}
// let nowDay = new Date();
// var year = nowDay.getFullYear(); //年
// var month = nowDay.getMonth() + 1; //月
// var day = nowDay.getDate(); //日
// var currentDay = year + '-' + month + '-' + day;
// this.msg.StartTime = currentDay
// if (this.$route.query.StartTime) {
// this.msg.StartTime = this.$route.query.StartTime + '-01';
// }
// if (this.$route.query.EndTime) {
// this.msg.EndTime = this.$route.query.EndTime + '-01';
// }
if
(
this
.
$route
.
query
.
EnterID
)
{
this
.
msg
.
EnterID
=
Number
(
this
.
$route
.
query
.
EnterID
);
}
if
(
this
.
$route
.
query
.
ClassName
)
{
this
.
msg
.
ClassName
=
decodeURI
(
this
.
$route
.
query
.
ClassName
);
}
this
.
queryCourseSubject
();
this
.
getOrderState
();
this
.
getCourseList
();
},
mounted
()
{
this
.
getList
();
this
.
getEmployee
(
0
);
this
.
getglteacher
();
},
methods
:
{
queryCourseSubject
()
{
getCourseSubject
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
CourseSubjectList
=
res
.
Data
;
}
});
},
//订单状态
getOrderState
()
{
getOrderStateEnumList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
var
tempArray
=
res
.
Data
;
if
(
!
tempArray
)
{
tempArray
=
[];
}
tempArray
.
unshift
({
Id
:
0
,
Name
:
"不限"
});
this
.
OrderStateList
=
tempArray
;
}
});
},
//获取课程
getCourseList
()
{
queryCourseDropdownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
var
tempArray
=
res
.
Data
;
if
(
!
tempArray
)
{
tempArray
=
[];
}
tempArray
.
unshift
({
CourseId
:
0
,
CourseName
:
"不限"
});
this
.
CourseList
=
tempArray
;
}
});
},
//翻页
changePage
(
val
)
{
if
(
this
.
showone
==
true
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
}
else
{
this
.
showone
=
true
;
}
},
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
//获取菜单分页列表
getList
()
{
// if (this.dateList && this.dateList.length > 0) {
// this.msg.StartTime = this.dateList[0];
// this.msg.EndTime = this.dateList[1];
// } else {
// this.msg.StartTime = '';
// this.msg.EndTime = '';
// }
if
(
this
.
dateList2
&&
this
.
dateList2
.
length
>
0
)
{
this
.
msg
.
OPStartTime
=
this
.
dateList2
[
0
];
this
.
msg
.
OPEndTime
=
this
.
dateList2
[
1
];
}
else
{
this
.
msg
.
OPStartTime
=
""
;
this
.
msg
.
OPEndTime
=
""
;
}
this
.
msg
.
CustomerId
=
this
.
Id
;
let
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
if
(
msg
.
OrderId
==
""
||
msg
.
OrderId
==
null
)
{
msg
.
OrderId
=
0
;
}
this
.
loading
=
true
;
getMyOrderStatisticsPageList
(
msg
)
.
then
(
res
=>
{
this
.
data
=
res
.
Data
.
PageData
;
let
OrderIds
=
[];
this
.
data
.
List
.
forEach
(
x
=>
{
OrderIds
.
push
(
x
.
OrderId
);
});
this
.
loading
=
false
;
OrderIds
=
OrderIds
.
join
(
","
);
if
(
this
.
data
.
List
.
length
>
0
)
{
this
.
$refs
.
orderL
.
getOrderFinanceList
(
OrderIds
,
1
);
}
this
.
pageCount
=
res
.
Data
.
PageCount
;
})
.
catch
(()
=>
{
this
.
loading
=
false
;
});
},
//刷新页面
refreshClassOrder
()
{
this
.
getList
();
},
getClassInfo
(
obj
)
{
//打开班级详情组件
this
.
classObjOption
=
obj
;
this
.
isShowClassInfo
=
true
;
},
//关闭班级信息弹窗
closeClass
()
{
this
.
isShowClassInfo
=
false
;
},
getglteacher
()
{
var
qMsg
=
{
AccountTypeStr
:
2
};
queryEmployee
(
qMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
let
obj
=
{
Id
:
""
,
EmployeeName
:
"不限"
};
this
.
TeacherList
.
unshift
(
obj
);
this
.
AllTeacherList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
TeacherList
));
}
});
},
//筛选关联老师
filterFn3
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
TeacherList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
AllTeacherList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
TeacherList
=
this
.
AllTeacherList
.
filter
(
v
=>
v
.
EmployeeName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
},
//业务员
getEmployee
(
id
)
{
var
qMsg
=
{
Dept_Id
:
0
};
qMsg
.
Dept_Id
=
id
;
queryEmployee
(
qMsg
)
.
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
EmployeeList
=
res
.
Data
;
let
obj
=
{
Id
:
""
,
EmployeeName
:
"不限"
};
this
.
EmployeeList
.
unshift
(
obj
);
this
.
AllemployeeList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
EmployeeList
)
);
}
})
.
catch
(()
=>
{});
},
//筛选业务员
filterFn2
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
EmployeeList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
AllemployeeList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
EmployeeList
=
this
.
AllemployeeList
.
filter
(
v
=>
v
.
EmployeeName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
},
goexport
()
{
//导出
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
EduDownLoad
(
"/order/GetOrderPageListStatisticsToExcel"
,
msg
,
"订单列表.xls"
);
}
}
};
</
script
>
<
style
scoped
>
li
{
list-style-type
:
none
;
}
.myOrder
ul
{
padding
:
0px
;
}
.myOrder
.price-popup
{
border-radius
:
4px
;
}
.myOrder
.el-range-editor
.el-range-input
{
background
:
transparent
;
}
.myOrder
.el-range-editor.el-input__inner
{
background-color
:
transparent
;
}
.myOrder
.q-mb-md
{
margin-bottom
:
0
;
}
.myOrder
.stics
{
padding
:
5px
10px
;
background
:
#dddee0
;
border-radius
:
4px
;
font-size
:
14px
;
color
:
#000000
;
font-weight
:
bold
;
white-space
:
nowrap
;
}
.myOrder
.stics
.stics-name
{
color
:
#2d2d2d
;
font-weight
:
600
;
margin-right
:
10px
;
}
.myOrder
.tis
{
margin
:
10px
0
;
align-items
:
center
;
}
.myOrder
.tis
.tis-k
{
width
:
10px
;
height
:
10px
;
margin-right
:
8px
;
}
.myOrder
.tis
span
{
font-size
:
14px
;
color
:
#2d2d2d
;
font-weight
:
600
;
margin-right
:
20px
;
}
.myOrder
.el-input__inner
{
border
:
none
!important
;
background
:
transparent
!important
;
}
</
style
>
src/components/sale/peerInfo/passbook.vue
0 → 100644
View file @
61ae4e05
<
template
>
<div
class=
"passbook"
>
<div
class=
"row wrap q-gutter-xs q-my-xs"
>
<div
class=
"stics"
>
<span
class=
"stics-name"
>
累计
</span>
<span>
{{
data
.
SttlementMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
已提现
</span>
<span
style=
"color: #F72E52"
>
{{
data
.
CashOutMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
可提现
</span>
<span
style=
"color:#2961FE;"
>
{{
data
.
CanCashOutMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
未结算
</span>
<span>
{{
data
.
UnSettlementMoney
}}
</span>
</div>
</div>
<q-tabs
v-model=
"tabs"
active-color=
"primary"
align=
"left"
style=
"width:180px;"
class=
"q-my-xs"
>
<q-tab
:name=
"1"
label=
"返佣明细"
/>
<q-tab
:name=
"2"
label=
"提现记录"
/>
</q-tabs>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
v-if=
"tabs==1"
>
<template
v-slot:body-cell-Status=
"props"
>
<q-td
:props=
"props"
style=
"padding-right: 0px"
>
<span
v-if=
"props.row.Status==-1"
>
不返佣
</span>
<span
v-if=
"props.row.Status==0"
>
待返佣
</span>
<span
v-if=
"props.row.Status==1"
>
已返佣到账户
</span>
<span
v-if=
"props.row.Status==2"
>
佣金已提现
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-CommissionType=
"props"
>
<q-td
:props=
"props"
style=
"padding-right: 0px"
>
<span
v-if=
"props.row.CommissionType==1"
>
返佣
</span>
<span
v-if=
"props.row.CommissionType==2"
>
幸福存折
</span>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
<withdraw
v-if=
"tabs==2"
:Type=
"2"
:Id=
"Id"
></withdraw>
</div>
</template>
<
script
>
import
{
getCustomerCommissionPassbook
,
getCustomerCommissionStat
,
GetCustomerBalanceDetailPage
}
from
"../../../api/sale/peemanagement"
;
import
{
getCommissionStatistics
,
}
from
'../../../api/finance/index'
import
withdraw
from
'./withdraw'
export
default
{
components
:{
withdraw
},
props
:
{
Id
:
{
type
:
Number
,
default
:
0
}
},
data
()
{
return
{
loading
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
BatchId
:
0
,
SchoolId
:
'-1'
,
Status
:
'-2'
,
OrderSourceType
:
0
,
OrderSourceId
:
0
,
Q_SelectNormal
:
0
,
CommissionType
:
2
,
ClassId
:
0
,
OrderId
:
''
,
},
pageCount
:
0
,
data
:{},
dataList
:
[],
columns
:
[
{
name
:
"SchoolName"
,
label
:
"校区"
,
field
:
"SchoolName"
,
align
:
"left"
},
{
name
:
"OrderSourceTypeName"
,
label
:
"来源"
,
align
:
"left"
,
field
:
"OrderSourceTypeName"
},
{
name
:
"UserName"
,
label
:
"人员"
,
field
:
"UserName"
,
align
:
"left"
},
{
name
:
"ClassNo"
,
label
:
"班号"
,
field
:
"ClassNo"
,
align
:
"left"
},
{
name
:
"OrderId"
,
label
:
"订单编号"
,
field
:
"OrderId"
,
align
:
"left"
},
{
name
:
"StuName"
,
label
:
"学生"
,
field
:
"StuName"
,
align
:
"left"
},
{
name
:
"CommissionType"
,
label
:
"类型"
,
field
:
"CommissionType"
,
align
:
"left"
},
{
name
:
"CommissionMoeny"
,
label
:
"金额"
,
field
:
"CommissionMoeny"
,
align
:
"left"
},
{
name
:
"Status"
,
label
:
"状态"
,
field
:
"Status"
,
align
:
"left"
},
{
name
:
"BatchName"
,
label
:
"期数"
,
field
:
"BatchName"
,
align
:
"left"
},
{
name
:
"Remark"
,
label
:
"备注"
,
field
:
"Remark"
,
align
:
"left"
}
],
tabs
:
1
,
};
},
mounted
()
{
this
.
getData
();
this
.
getList
();
},
methods
:
{
getData
()
{
const
msg
=
{
OrderSourceType
:
2
,
OrderSourceId
:
this
.
Id
,
CommissionType
:
2
,
// 1返佣 2幸福存折
};
getCustomerCommissionStat
(
msg
).
then
(
res
=>
{
this
.
data
=
res
.
Data
});
},
//获取数据
getList
()
{
this
.
msg
.
OrderSourceId
=
this
.
Id
this
.
loading
=
true
;
getCommissionStatistics
(
this
.
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
.
PageData
.
List
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
}
})
.
catch
(()
=>
{
this
.
loading
=
false
;
});
},
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
}
}
};
</
script
>
<
style
>
.passbook
::-webkit-scrollbar
{
width
:
5px
;
height
:
5px
;
}
.passbook
::-webkit-scrollbar-track
{
background
:
#fff
;
border-radius
:
2px
;
}
.passbook
::-webkit-scrollbar-thumb
{
background
:
#444
;
border-radius
:
10px
;
}
.passbook
::-webkit-scrollbar-thumb:hover
{
background
:
#999
;
}
.passbook
::-webkit-scrollbar-corner
{
background
:
#204754
;
}
.passbook
.stics
{
padding
:
5px
10px
;
background
:
#dddee0
;
border-radius
:
4px
;
font-size
:
14px
;
color
:
#000000
;
font-weight
:
bold
;
white-space
:
nowrap
;
}
.passbook
.stics-name
{
color
:
#2d2d2d
;
font-weight
:
600
;
margin-right
:
10px
;
}
</
style
>
src/components/sale/peerInfo/peerRight.vue
0 → 100644
View file @
61ae4e05
<
template
>
<q-dialog
v-model=
"persistent"
maximized
full-height
seamless
position=
"right"
@
hide=
"closeAuditCustomerForm"
>
<div
class=
"info-content-component"
>
<div
class=
"info-head flex items-center"
>
<div
class=
"flex items-center"
>
<div>
<div
class=
"text-h7"
>
{{
detailData
.
CategoryName
}}
</div>
</div>
</div>
<q-space
/>
</div>
<div
class=
"info-content"
>
<div
class=
"detail-info"
>
<baseInfo
:Data=
"detailData"
@
confirm=
"saveBaseInfo"
></baseInfo>
</div>
<div
class=
"detail-log"
>
<right
:Id=
"rowId"
></right>
</div>
</div>
</div>
<div
class=
"dialog-out-close"
@
click=
"closeAuditCustomerForm"
style=
"height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;"
>
<q-icon
name=
"iconfont icon-jujue1"
size=
"26px"
/>
</div>
</q-dialog>
</
template
>
<
script
>
import
{
GetCustomer
,
SetCustomer
,
RemoveCustomer
,
setCustomerCareOf
}
from
"../../../api/sale/peemanagement"
;
import
{
queryCustomerCategory
}
from
"../../../api/users/user"
import
baseInfo
from
"./baseInfo.vue"
;
import
right
from
"./conRight.vue"
;
export
default
{
components
:
{
baseInfo
,
right
},
props
:
{
rowId
:
{
type
:
Number
,
default
:
0
},
auth
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
persistent
:
true
,
detailData
:
{},
//员工列表
employeeList
:
[],
myEmployeeList
:
[],
isShowTrans
:
false
,
TransferMsg
:
{
CustomerIds
:
""
,
EmpId
:
""
}
};
},
mounted
()
{
this
.
initObj
();
this
.
employeeList
=
this
.
empList
;
this
.
myEmployeeList
=
this
.
empList
;
},
methods
:
{
//关闭弹窗
closeAuditCustomerForm
()
{
this
.
$emit
(
"close"
);
this
.
persistent
=
false
;
},
//初始化表单
initObj
()
{
if
(
this
.
rowId
>
0
)
{
let
msg
=
{
CategoryId
:
this
.
rowId
};
queryCustomerCategory
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
console
.
log
(
res
,
'数据'
);
this
.
detailData
=
res
.
Data
;
}
});
}
else
{
}
},
saveBaseInfo
(
obj
)
{
this
.
detailData
[
obj
.
field
]
=
obj
.
val
;
SetCustomer
(
this
.
detailData
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"数据保存成功!"
,
position
:
"top"
});
this
.
$emit
(
"success"
);
}
});
},
//同业转交
saveTransForm
()
{
this
.
$refs
.
transfer
.
validate
();
if
(
this
.
$refs
.
transfer
.
hasError
)
return
;
this
.
TransferMsg
.
CustomerIds
=
this
.
rowId
;
setCustomerCareOf
(
this
.
TransferMsg
).
then
(
res
=>
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"转交成功"
,
position
:
"top"
});
this
.
isShowTrans
=
false
;
this
.
$emit
(
"success"
);
});
},
//筛选员工
filterEmployee
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
myEmployeeList
=
this
.
employeeList
.
filter
(
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
);
});
},
//删除客户
RemoveCustomer
(
obj
)
{
let
that
=
this
;
var
message
=
"您正在进行删除【"
+
this
.
detailData
.
CustomerName
+
"】行为,一旦执行无法找回,是否确认执行?"
;
this
.
$q
.
dialog
({
title
:
"删除客户"
,
message
:
message
,
isShowEditClassRoomForm
:
true
,
cancel
:
{
label
:
"取消"
,
flat
:
true
},
ok
:
{
label
:
"确认"
,
flat
:
true
,
focus
:
true
}
})
.
onOk
(()
=>
{
var
delMsg
=
{
CustomerId
:
this
.
detailData
.
CustomerId
};
RemoveCustomer
(
delMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
that
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"操作成功"
,
position
:
"top"
});
that
.
$emit
(
"success"
);
that
.
closeAuditCustomerForm
()
}
});
});
},
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.info-content-component
{
display
:
flex
;
flex-direction
:
column
;
width
:
1010px
;
padding
:
15px
17px
;
background-color
:
#f4f4f6
;
overflow
:
auto
;
box-sizing
:
border-box
;
.info-head
{
background-color
:
#fff
;
border-radius
:
8px
;
padding
:
22px
;
}
.info-content
{
flex
:
1
;
display
:
flex
;
margin-top
:
17px
;
overflow
:
hidden
;
.detail-info
{
flex-shrink
:
0
;
box-sizing
:
border-box
;
display
:
flex
;
flex-direction
:
column
;
width
:
350px
;
height
:
100%
;
margin-right
:
13px
;
background-color
:
#fff
;
border-radius
:
8px
8px
0
0
;
}
.detail-log
{
width
:
100%
;
flex-grow
:
1
;
display
:
flex
;
flex-direction
:
column
;
background-color
:
#fff
;
border-radius
:
8px
8px
0
0
;
overflow
:
hidden
;
}
}
}
</
style
>
src/components/sale/peerInfo/rakeback.vue
0 → 100644
View file @
61ae4e05
<
template
>
<div
class=
"passbook"
>
<div
class=
"row wrap q-gutter-xs q-my-xs "
>
<div
class=
"stics"
>
<span
class=
"stics-name"
>
累计
</span>
<span>
{{
data
.
SttlementMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
已提现
</span>
<span
style=
"color: #F72E52"
>
{{
data
.
CashOutMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
可提现
</span>
<span
style=
"color:#2961FE;"
>
{{
data
.
CanCashOutMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
未结算
</span>
<span>
{{
data
.
UnSettlementMoney
}}
</span>
</div>
</div>
<q-tabs
v-model=
"tabs"
active-color=
"primary"
align=
"left"
style=
"width:180px;"
class=
"q-my-xs"
>
<q-tab
:name=
"1"
label=
"返佣明细"
/>
<q-tab
:name=
"2"
label=
"提现记录"
/>
</q-tabs>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
v-if=
"tabs==1"
>
<template
v-slot:body-cell-Status=
"props"
>
<q-td
:props=
"props"
style=
"padding-right: 0px"
>
<span
v-if=
"props.row.Status==-1"
>
不返佣
</span>
<span
v-if=
"props.row.Status==0"
>
待返佣
</span>
<span
v-if=
"props.row.Status==1"
>
已返佣到账户
</span>
<span
v-if=
"props.row.Status==2"
>
佣金已提现
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-CommissionType=
"props"
>
<q-td
:props=
"props"
style=
"padding-right: 0px"
>
<span
v-if=
"props.row.CommissionType==1"
>
返佣
</span>
<span
v-if=
"props.row.CommissionType==2"
>
幸福存折
</span>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
<withdraw
v-if=
"tabs==2"
:Type=
"1"
:Id=
"Id"
></withdraw>
</div>
</template>
<
script
>
import
{
getCustomerCommissionPassbook
,
getCustomerCommissionStat
,
GetCustomerBalanceDetailPage
}
from
"../../../api/sale/peemanagement"
;
import
{
getCommissionStatistics
,
}
from
'../../../api/finance/index'
import
withdraw
from
'./withdraw'
export
default
{
components
:{
withdraw
},
props
:
{
Id
:
{
//1返佣 2幸福存折
type
:
Number
,
default
:
0
}
},
data
()
{
return
{
loading
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
BatchId
:
0
,
SchoolId
:
'-1'
,
Status
:
'-2'
,
OrderSourceType
:
0
,
OrderSourceId
:
0
,
Q_SelectNormal
:
0
,
CommissionType
:
1
,
ClassId
:
0
,
OrderId
:
''
,
},
pageCount
:
0
,
data
:
{},
dataList
:
[],
columns
:
[
{
name
:
"SchoolName"
,
label
:
"校区"
,
field
:
"SchoolName"
,
align
:
"left"
},
{
name
:
"OrderSourceTypeName"
,
label
:
"来源"
,
align
:
"left"
,
field
:
"OrderSourceTypeName"
},
{
name
:
"UserName"
,
label
:
"人员"
,
field
:
"UserName"
,
align
:
"left"
},
{
name
:
"ClassNo"
,
label
:
"班号"
,
field
:
"ClassNo"
,
align
:
"left"
},
{
name
:
"OrderId"
,
label
:
"订单编号"
,
field
:
"OrderId"
,
align
:
"left"
},
{
name
:
"StuName"
,
label
:
"学生"
,
field
:
"StuName"
,
align
:
"left"
},
{
name
:
"CommissionType"
,
label
:
"类型"
,
field
:
"CommissionType"
,
align
:
"left"
},
{
name
:
"CommissionMoeny"
,
label
:
"金额"
,
field
:
"CommissionMoeny"
,
align
:
"left"
},
{
name
:
"Status"
,
label
:
"状态"
,
field
:
"Status"
,
align
:
"left"
},
{
name
:
"BatchName"
,
label
:
"期数"
,
field
:
"BatchName"
,
align
:
"left"
},
{
name
:
"Remark"
,
label
:
"备注"
,
field
:
"Remark"
,
align
:
"left"
}
],
tabs
:
1
};
},
mounted
()
{
this
.
getData
();
this
.
getList
();
},
methods
:
{
getData
()
{
const
msg
=
{
OrderSourceType
:
2
,
OrderSourceId
:
this
.
Id
,
CommissionType
:
1
,
};
getCustomerCommissionStat
(
msg
).
then
(
res
=>
{
this
.
data
=
res
.
Data
;
});
},
//获取数据
getList
()
{
this
.
msg
.
OrderSourceId
=
this
.
Id
this
.
loading
=
true
;
getCommissionStatistics
(
this
.
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
.
PageData
.
List
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
}
})
.
catch
(()
=>
{
this
.
loading
=
false
;
});
},
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
}
}
};
</
script
>
<
style
>
.passbook
::-webkit-scrollbar
{
width
:
5px
;
height
:
5px
;
}
.passbook
::-webkit-scrollbar-track
{
background
:
#fff
;
border-radius
:
2px
;
}
.passbook
::-webkit-scrollbar-thumb
{
background
:
#444
;
border-radius
:
10px
;
}
.passbook
::-webkit-scrollbar-thumb:hover
{
background
:
#999
;
}
.passbook
::-webkit-scrollbar-corner
{
background
:
#204754
;
}
.passbook
.stics
{
padding
:
5px
10px
;
background
:
#dddee0
;
border-radius
:
4px
;
font-size
:
14px
;
color
:
#000000
;
font-weight
:
bold
;
white-space
:
nowrap
;
}
.passbook
.stics-name
{
color
:
#2d2d2d
;
font-weight
:
600
;
margin-right
:
10px
;
}
</
style
>
src/components/sale/peerInfo/withdraw.vue
0 → 100644
View file @
61ae4e05
<
template
>
<div
class=
"withdraw"
>
<q-table
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table "
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:body-cell-CustomerName=
"props"
>
<q-td
:props=
"props"
>
<q-avatar
rounded
size=
"sm"
v-if=
"props.row.CustomerImage"
>
<img
:src=
"props.row.CustomerImage"
/>
</q-avatar>
<q-avatar
rounded
size=
"sm"
color=
"teal-10"
text-color=
"white"
v-if=
"!props.row.CustomerImage"
>
{{
props
.
row
.
CustomerName
.
substring
(
0
,
1
)
}}
</q-avatar
>
{{
props
.
row
.
CustomerName
}}
</q-td>
</
template
>
<
template
v-slot:body-cell-Type=
"props"
>
<q-td
:props=
"props"
>
{{
props
.
row
.
Type
==
1
?
"返佣"
:
"幸福存折"
}}
</q-td>
</
template
>
<
template
v-slot:body-cell-AuditStatus=
"props"
>
<q-td
:props=
"props"
>
<span
v-if=
"props.row.AuditStatus == 1"
>
申请中
</span>
<span
v-if=
"props.row.AuditStatus == 2"
>
待打款
</span>
<span
v-if=
"props.row.AuditStatus == 3"
>
已打款
</span>
<span
v-if=
"props.row.AuditStatus == 4"
>
拒绝
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-TimeStr=
"props"
>
<q-td
:props=
"props"
>
<div
v-if=
"props.row.AuditDate != ''"
>
审核时间:
{{
props
.
row
.
AuditDate
}}
</div>
<div
v-if=
"props.row.RemitDate != ''"
>
打款时间:
{{
props
.
row
.
RemitDate
}}
</div>
<div
v-if=
"props.row.RejectDate != ''"
>
拒绝时间:
{{
props
.
row
.
RejectDate
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-Remark=
"props"
>
<q-td
:props=
"props"
>
<div
v-if=
"props.row.AuditRemark && props.row.AuditRemark != ''"
>
审核备注:
{{
props
.
row
.
AuditRemark
}}
</div>
<div
v-if=
"props.row.RemitRemark && props.row.RemitRemark != ''"
>
打款备注:
{{
props
.
row
.
RemitRemark
}}
</div>
<div
v-if=
"props.row.RejectRemark && props.row.RejectRemark != ''"
>
拒绝备注:
{{
props
.
row
.
RejectRemark
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-BankName=
"props"
>
<q-td
:props=
"props"
>
<div>
<img
:src=
"props.row.BankIcon"
alt
/>
</div>
<div>
{{
props
.
row
.
AccountHolder
}}
(
{{
props
.
row
.
BankCardNo
}}
)
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
style=
"width:100px;"
>
<q-btn
v-if=
"props.row.AuditStatus == 1"
flat
size=
"xs"
icon=
"edit"
color=
"done"
style=
"font-weight:400"
label=
"审核"
@
click=
"operation(props.row)"
/>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
<q-dialog
v-model=
"isShow"
persistent
>
<q-card
style=
"width: 520px; max-width: 80vw;"
>
<q-card-section>
<div
class=
"text-h6"
>
提现审核
</div>
</q-card-section>
<q-separator
/>
<q-card-section
class=
"q-pt-none"
style=
"margin-top: 15px;padding:10px 20px;"
>
<q-radio
v-model=
"remitMsg.State"
val=
"1"
label=
"审核通过"
/>
<q-radio
v-model=
"remitMsg.State"
val=
"2"
label=
"审核驳回"
/>
<q-input
filled
clearable
v-model=
"remitMsg.Remark"
label=
"备注"
style=
"margin-top: 20px;"
type=
"textarea"
/>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"isShow = false"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"确定"
@
click=
"submit()"
/>
</q-card-actions>
</q-card>
</q-dialog>
</div>
</template>
<
script
>
import
{
getCustomerRemitPageList
,
setCustomerRemitState
}
from
'../../../api/sale/peemanagement'
;
export
default
{
meta
:
{
title
:
"同行审批"
},
components
:
{
},
props
:{
Type
:{
type
:
Number
,
default
:
1
},
Id
:{
type
:
Number
,
default
:
0
}
},
data
()
{
return
{
pageCount
:
0
,
isShow
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
12
,
rowsPerPage
:
12
,
Type
:
'0'
,
// 类型 1返佣 2幸福存折
AuditStatus
:
'0'
,
//状态 1申请中 2待打款 3已打款 4拒绝
CustomerId
:
0
},
loading
:
false
,
TypeList
:
[{
label
:
"全部"
,
value
:
"0"
,
},
{
label
:
"返佣"
,
value
:
"1"
,
},
{
label
:
"幸福存折"
,
value
:
"2"
,
}],
//审核状态列表
ApproveStateList
:
[{
label
:
"不限"
,
value
:
"0"
,
},
{
label
:
"申请中"
,
value
:
"1"
,
},
{
label
:
"待打款"
,
value
:
"2"
,
},
{
label
:
"已打款"
,
value
:
"3"
,
},
{
label
:
"拒绝"
,
value
:
"4"
,
},
],
columns
:
[
{
name
:
'CustomerName'
,
label
:
'客户信息'
,
field
:
'CustomerName'
,
align
:
'left'
},
{
name
:
'ContactNumber'
,
label
:
'联系电话'
,
field
:
'ContactNumber'
,
align
:
'left'
,
},
{
name
:
'Type'
,
label
:
'类型'
,
field
:
'Type'
,
align
:
'left'
},
{
name
:
'BankName'
,
label
:
'提现账户'
,
field
:
'BankName'
,
align
:
'left'
},
{
name
:
'AppliedMoney'
,
label
:
'申请金额'
,
field
:
'AppliedMoney'
,
align
:
'left'
},
{
name
:
'RemitMoney'
,
label
:
'打款金额'
,
field
:
'RemitMoney'
,
align
:
'left'
},
{
name
:
'AuditStatus'
,
label
:
'状态'
,
field
:
'AuditStatus'
,
align
:
'left'
},
{
name
:
'TimeStr'
,
label
:
'时间'
,
field
:
'TimeStr'
,
align
:
'left'
},
{
name
:
'Remark'
,
label
:
'备注'
,
field
:
'Remark'
,
align
:
'left'
},
{
name
:
'CreateDate'
,
label
:
'申请时间'
,
field
:
'CreateDate'
,
align
:
'left'
},
// {
// name: 'optioned',
// label: '操作',
// field: 'QuestionId'
// }
],
dataList
:
[],
//判断显示
authObj
:
{
isShowAudit
:
true
,
},
remitMsg
:{
RemitId
:
0
,
State
:
1
,
Remark
:
''
,
}
}
},
created
()
{
},
mounted
()
{
this
.
getList
();
},
methods
:
{
//重新查询
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
()
},
//获取分页数据
getList
()
{
this
.
msg
.
Type
=
this
.
Type
this
.
msg
.
CustomerId
=
this
.
Id
getCustomerRemitPageList
(
this
.
msg
).
then
(
res
=>
{
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
loading
=
false
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
}).
catch
(()
=>
{
this
.
loading
=
false
})
},
operation
(
row
,
type
){
this
.
remitMsg
.
RemitId
=
row
.
Id
;
this
.
remitMsg
.
State
=
'1'
;
this
.
remitMsg
.
Remark
=
''
;
this
.
isShow
=
true
},
submit
(){
setCustomerRemitState
(
this
.
remitMsg
).
then
(
res
=>
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'操作成功'
,
position
:
'top'
})
this
.
isShow
=
false
this
.
getList
();
}).
catch
(()
=>
{
})
}
}
}
</
script
>
<
style
>
.withdraw
::-webkit-scrollbar
{
width
:
5px
;
height
:
5px
;
}
.withdraw
::-webkit-scrollbar-track
{
background
:
#fff
;
border-radius
:
2px
;
}
.withdraw
::-webkit-scrollbar-thumb
{
background
:
#444
;
border-radius
:
10px
;
}
.withdraw
::-webkit-scrollbar-thumb:hover
{
background
:
#999
;
}
.withdraw
::-webkit-scrollbar-corner
{
background
:
#204754
;
}
</
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