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
7e6340e5
Commit
7e6340e5
authored
Feb 10, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
0b197d2c
61ae4e05
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
3165 additions
and
7 deletions
+3165
-7
customcategorylist.vue
src/components/sale/customcategorylist.vue
+24
-5
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
channelDetail.vue
src/pages/sale/channelDetail.vue
+53
-2
No files found.
src/components/sale/customcategorylist.vue
View file @
7e6340e5
...
@@ -18,10 +18,10 @@
...
@@ -18,10 +18,10 @@
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
@
click=
"EditCustom(null)"
label=
"新增客户"
/>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
@
click=
"EditCustom(null)"
label=
"新增客户"
/>
</div>
</div>
</
template
>
</
template
>
<
template
v-slot:body-cell-C
ustomer
Name=
"props"
>
<
template
v-slot:body-cell-C
ategory
Name=
"props"
>
<q-td>
<q-td>
<div
class=
"CustomerName"
@
click=
"showDetail(props.row)"
>
<div
class=
"CustomerName"
@
click=
"showDetail(props.row)"
>
{{
props
.
row
.
C
ustomer
Name
}}
{{
props
.
row
.
C
ategory
Name
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
...
@@ -58,6 +58,7 @@
...
@@ -58,6 +58,7 @@
<categoryEdit-form
v-if=
"isShowCategoryForm"
:customerObj=
"customerObj"
@
close=
"closeCustomForm"
<categoryEdit-form
v-if=
"isShowCategoryForm"
:customerObj=
"customerObj"
@
close=
"closeCustomForm"
@
success=
"refreshQuestion"
>
@
success=
"refreshQuestion"
>
</categoryEdit-form>
</categoryEdit-form>
<peerRight
v-if=
"isShowDetailForm"
:rowId=
"curRowId"
@
close=
"closeCustomForm"
:auth=
"AuthorityObj"
@
success=
"refreshQuestion"
></peerRight>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
...
@@ -65,7 +66,7 @@
...
@@ -65,7 +66,7 @@
deleteCustomerCategory
deleteCustomerCategory
}
from
"../../api/users/user"
;
}
from
"../../api/users/user"
;
import
categoryEditForm
from
"../sale/categoryEdit-form"
;
import
categoryEditForm
from
"../sale/categoryEdit-form"
;
import
peerRight
from
"../sale/peerInfo/peerRight"
;
export
default
{
export
default
{
props
:
{
props
:
{
dataList
:
{
dataList
:
{
...
@@ -74,7 +75,8 @@
...
@@ -74,7 +75,8 @@
}
}
},
},
components
:
{
components
:
{
categoryEditForm
categoryEditForm
,
peerRight
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -130,7 +132,17 @@
...
@@ -130,7 +132,17 @@
},
},
loading
:
false
,
loading
:
false
,
isShowCategoryForm
:
false
,
isShowCategoryForm
:
false
,
customerObj
:
null
//传入参数
customerObj
:
null
,
//传入参数
tabId
:
1
,
//权限设置
AuthorityObj
:
{
isShowEdit
:
false
,
//是否显示新增修改按钮
isShowAudit
:
false
,
//是否显示审批
isShowBankBook
:
false
,
//是否显示幸福存折
isShowRebate
:
false
//是否显示返佣
},
isShowDetailForm
:
false
,
curRowId
:
0
};
};
},
},
created
()
{
created
()
{
...
@@ -191,10 +203,17 @@
...
@@ -191,10 +203,17 @@
//关闭弹窗
//关闭弹窗
closeCustomForm
()
{
closeCustomForm
()
{
this
.
isShowCategoryForm
=
false
;
this
.
isShowCategoryForm
=
false
;
this
.
isShowDetailForm
=
false
;
},
},
refreshQuestion
()
{
refreshQuestion
()
{
this
.
$emit
(
"success"
);
this
.
$emit
(
"success"
);
},
},
//客户详情
showDetail
(
row
)
{
console
.
log
(
row
);
this
.
curRowId
=
row
.
CategoryId
;
this
.
isShowDetailForm
=
true
;
}
}
}
};
};
</
script
>
</
script
>
\ No newline at end of file
src/components/sale/peerInfo/b2bOrderlist.vue
0 → 100644
View file @
7e6340e5
<!--订单列表-->
<
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 @
7e6340e5
<
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 @
7e6340e5
<
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 @
7e6340e5
<
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 @
7e6340e5
<
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 @
7e6340e5
<
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 @
7e6340e5
<
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 @
7e6340e5
<
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 @
7e6340e5
<
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
>
src/pages/sale/channelDetail.vue
View file @
7e6340e5
...
@@ -10,6 +10,11 @@
...
@@ -10,6 +10,11 @@
.makeOutDiv
.el-table
th
{
.makeOutDiv
.el-table
th
{
background
:
#f5f6f7
;
background
:
#f5f6f7
;
}
}
.CustomerName
{
cursor
:
pointer
;
color
:
var
(
--q-color-primary
);
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"page-body"
>
<div
class=
"page-body"
>
...
@@ -42,6 +47,14 @@
...
@@ -42,6 +47,14 @@
<el-table-column
label=
"序号"
type=
"index"
>
<el-table-column
label=
"序号"
type=
"index"
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"ChannelName"
label=
"渠道名"
>
<el-table-column
prop=
"ChannelName"
label=
"渠道名"
>
<
template
slot-scope=
"scope"
>
<div
class=
"CustomerName"
v-if=
"scope.row.CustomerType"
@
click=
"showDetail(scope.row)"
>
{{
scope
.
row
.
ChannelName
}}
</div>
<div
v-else
>
{{
scope
.
row
.
ChannelName
}}
</div>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"ClueCount"
label=
"回单"
sortable
>
<el-table-column
prop=
"ClueCount"
label=
"回单"
sortable
>
</el-table-column>
</el-table-column>
...
@@ -63,6 +76,8 @@
...
@@ -63,6 +76,8 @@
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</div>
</div>
<customerInfo
v-if=
"isShowDetailForm"
:rowId=
"curRowId"
:tabId=
"tabId"
:empList=
"employeeList"
@
close=
"closeCustomForm"
:auth=
"AuthorityObj"
@
success=
"refreshQuestion"
></customerInfo>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
...
@@ -72,7 +87,11 @@
...
@@ -72,7 +87,11 @@
import
{
import
{
queryEmployee
queryEmployee
}
from
"../../api/users/user"
;
}
from
"../../api/users/user"
;
import
customerInfo
from
"../../components/sale/b2bcustomerinfo/b2bCustomerInfo.vue"
;
export
default
{
export
default
{
components
:
{
customerInfo
},
data
()
{
data
()
{
return
{
return
{
msg
:
{
msg
:
{
...
@@ -88,7 +107,19 @@
...
@@ -88,7 +107,19 @@
return
time
.
getTime
()
>
Date
.
now
()
-
8.64e6
return
time
.
getTime
()
>
Date
.
now
()
-
8.64e6
}
}
},
},
tableHeight
:
50
tableHeight
:
50
,
isShowDetailForm
:
false
,
curRowId
:
0
,
tabId
:
1
,
employeeList
:[],
//权限设置
AuthorityObj
:
{
isShowEdit
:
false
,
//是否显示新增修改按钮
isShowAudit
:
false
,
//是否显示审批
isShowBankBook
:
false
,
//是否显示幸福存折
isShowRebate
:
false
//是否显示返佣
},
};
};
},
},
created
()
{
created
()
{
...
@@ -111,12 +142,21 @@
...
@@ -111,12 +142,21 @@
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
'01'
);
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
'01'
);
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
day
);
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
day
);
this
.
getEmployeeList
();
this
.
getEmployeeList
();
this
.
getMyEmployeeList
();
this
.
getData
();
this
.
getData
();
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
tableHeight
=
window
.
innerHeight
-
this
.
$refs
.
table
.
$el
.
offsetTop
-
80
;
this
.
tableHeight
=
window
.
innerHeight
-
this
.
$refs
.
table
.
$el
.
offsetTop
-
80
;
},
100
)
},
100
)
},
},
methods
:
{
methods
:
{
//获取员工列表
getMyEmployeeList
()
{
queryEmployee
({
IsLeave
:
1
}).
then
(
res
=>
{
this
.
employeeList
=
res
.
Data
;
});
},
//获取数据
//获取数据
getData
()
{
getData
()
{
if
(
this
.
dateList
&&
this
.
dateList
.
length
>
0
)
{
if
(
this
.
dateList
&&
this
.
dateList
.
length
>
0
)
{
...
@@ -156,7 +196,18 @@
...
@@ -156,7 +196,18 @@
}
}
return
total
<=
0
?
"0"
:
(
Math
.
round
(
num
/
total
*
10000
)
/
100.00
);
return
total
<=
0
?
"0"
:
(
Math
.
round
(
num
/
total
*
10000
)
/
100.00
);
},
},
//客户详情
showDetail
(
row
)
{
this
.
curRowId
=
row
.
ChannelId
;
this
.
isShowDetailForm
=
true
;
},
//关闭弹窗
closeCustomForm
()
{
this
.
isShowDetailForm
=
false
;
},
refreshQuestion
()
{
this
.
getData
();
},
}
}
}
}
...
...
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