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
ae926ab5
Commit
ae926ab5
authored
Jul 02, 2021
by
Mac
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
a41bce05
67896c6c
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
1331 additions
and
664 deletions
+1331
-664
activeOrder-form.vue
src/components/sale/activeOrder-form.vue
+20
-4
activeOrder-item.vue
src/components/sale/activeOrder-item.vue
+156
-238
myActiveOrder-form.vue
src/components/sale/myActiveOrder-form.vue
+791
-0
teacher-form.vue
src/components/school/teacher/teacher-form.vue
+7
-9
activeDetail.vue
src/pages/activity/activeDetail.vue
+0
-3
makeAd.vue
src/pages/activity/makeAd.vue
+0
-2
payment.vue
src/pages/activity/payment.vue
+1
-1
chapter.vue
src/pages/course/chapter.vue
+282
-313
chapterEditor.vue
src/pages/course/chapterEditor.vue
+21
-14
activeOrderList.vue
src/pages/sale/activeOrderList.vue
+23
-55
activeOrderStatistics.vue
src/pages/sale/activeOrderStatistics.vue
+18
-17
activityList.vue
src/pages/sale/activityList.vue
+5
-2
myActiveOrder.vue
src/pages/sale/myActiveOrder.vue
+7
-6
No files found.
src/components/sale/activeOrder-form.vue
View file @
ae926ab5
...
...
@@ -22,13 +22,13 @@
</div>
<div
style=
"padding:20px 15px;"
>
<q-input
filled
stack-label
maxlength=
"30"
:dense=
"false"
v-model=
"OrderMsg.LinkMan"
class=
"col-12"
label=
"姓名"
v-model=
"OrderMsg.LinkMan"
class=
"col-12"
ref=
"LinkMan"
label=
"姓名"
:rules=
"[val => !!val || '请填写姓名']"
/>
<q-input
filled
stack-label
maxlength=
"30"
:dense=
"false"
v-model=
"OrderMsg.LinkTel"
class=
"col-12"
label=
"联系电话"
v-model=
"OrderMsg.LinkTel"
class=
"col-12"
ref=
"LinkTel"
label=
"联系电话"
:rules=
"[val => !!val || '请填写联系电话']"
/>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"OrderMsg.Remark"
style=
"margin-top: 20px"
type=
"textarea"
class=
"col-12"
label=
"备注"
/>
type=
"textarea"
class=
"col-12"
ref=
"Remark"
label=
"备注"
/>
<div
style=
"margin:30px 10px 70px 0;"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"closeEditOrder"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"保存"
@
click=
"saveOrderInfo()"
/>
...
...
@@ -63,6 +63,7 @@
}
},
mounted
()
{
console
.
log
(
66
,
this
.
saveObj
)
this
.
OrderMsg
.
Id
=
this
.
saveObj
.
Id
},
watch
:
{
...
...
@@ -75,7 +76,22 @@
this
.
$emit
(
'close'
)
},
saveOrderInfo
(){
this
.
$refs
.
LinkMan
.
validate
();
this
.
$refs
.
LinkTel
.
validate
();
// this.$refs.Remark.validate();
if
(
!
this
.
$refs
.
LinkMan
.
hasError
&&
!
this
.
$refs
.
LinkTel
.
hasError
){
this
.
apipostDS
(
"/api/Education/"
,
this
.
OrderMsg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
closeEditOrder
();
// this.$emit('success');
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
})
}
},
}
}
...
...
src/components/sale/activeOrder-item.vue
View file @
ae926ab5
...
...
@@ -5,13 +5,13 @@
<table
class=
"enrollTotalSearchTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<colgroup>
<col
width=
"12%"
/>
<!--
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"7%"
/>
-->
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"6%"
/>
<!--
<col
width=
"7%"
/>
<col
width=
"6%"
/>
-->
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"7%"
/>
...
...
@@ -21,13 +21,13 @@
<thead>
<tr
class=
"fix_th"
>
<th
width=
"12%"
>
单号
</th>
<th
width=
"7%"
>
人数
</th>
<
!--
<
th
width=
"7%"
>
人数
</th>
<th
width=
"7%"
>
单价
</th>
<th
width=
"7%"
>
成交
</th>
<th
width=
"7%"
>
成交
</th>
-->
<th
width=
"7%"
>
应收总额
</th>
<th
width=
"7%"
>
实收
</th>
<th
width=
"7%"
>
优惠
</th>
<th
width=
"6%"
>
少价金额
</th>
<
!--
<
th
width=
"7%"
>
优惠
</th>
<th
width=
"6%"
>
少价金额
</th>
-->
<th
width=
"7%"
>
退款
</th>
<th
width=
"7%"
>
平台税金
</th>
<th
width=
"7%"
>
待收金额
</th>
...
...
@@ -41,13 +41,13 @@
<table
class=
"enrollTotalSearchTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<colgroup>
<col
width=
"12%"
/>
<!--
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"7%"
/>
-->
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"6%"
/>
<!--
<col
width=
"7%"
/>
<col
width=
"6%"
/>
-->
<col
width=
"7%"
/>
<col
width=
"7%"
/>
<col
width=
"7%"
/>
...
...
@@ -59,11 +59,16 @@
</tr>
<tbody
v-for=
"(item,index) in dataList"
:key=
"index"
>
<tr>
<td
:rowspan=
"
3
"
style=
"text-align: left"
>
<div
class=
"order_OfferId"
@
click=
"goOrderdetails(item,1)"
>
{{
item
.
Order
Id
}}
<td
:rowspan=
"
2
"
style=
"text-align: left"
>
<div
class=
"order_OfferId"
@
click=
"goOrderdetails(item,1)"
>
{{
item
.
Id
}}
</div>
<div>
{{
item
.
EnterName
}}
</div>
<div
style=
"margin-top: 10px"
>
{{
item
.
CreateTime
}}
</div>
<div>
{{
item
.
EduSellName
}}
</div>
<div>
{{
item
.
ActivityName
}}
</div>
<div>
活动开始时间:
</div>
<div>
{{
item
.
StartTime
}}
</div>
<div>
活动结束时间:
</div>
<div>
{{
item
.
EndTime
}}
</div>
<!--
<div
style=
"margin-top: 10px"
>
{{
item
.
CreateTime
}}
</div>
-->
<template
v-if=
"AuthorityObj.isShowName"
>
<div
style=
"font-weight: bold;color:#2961FE;cursor:pointer;"
@
click=
"getClassInfo(item)"
>
{{
item
.
ClassName
}}
</div>
...
...
@@ -114,94 +119,99 @@
<div
style=
"color:red"
v-if=
"item.CommissionBack>0"
>
补交提成:
{{
item
.
CommissionBack
}}
</div>
</
template
>
</td>
<td
style=
"border:none"
>
{{item.GuestNum}}人
</td>
<
!-- <
td style="border:none">{{item.GuestNum}}人</td>
<td style="border:none">
<
template
v-if=
"item.
Class_
Price>=0"
>
{{
item
.
Class_Price
.
toFixed
(
2
)
}}
<template v-if="item.
Unit
Price>=0">
{{item.
UnitPrice.toFixed(2)
}}
</template>
</td>
<td
:style=
"{color:item.Class_Price!=item.
Unit_
Price?'var(--q-color-negative)':'','border':'none'}"
>
<
template
v-if=
"item.
Unit_
Price>=0"
>
{{
item
.
Unit
_Price
.
toFixed
(
2
)
}}
<td :style="{color:item.Class_Price!=item.
Unit
Price?'var(--q-color-negative)':'','border':'none'}">
<template v-if="item.
Unit
Price>=0">
{{item.Unit
Price
}}
</template>
<template v-else>
<span
class=
"redstyle"
>
{{
item
.
Unit_Price
.
toFixed
(
2
)
}}
</span>
<span class="redstyle">{{item.
UnitPrice
}}</span>
</template>
</td>
</td> -->
<!-- 应收总额 -->
<td
style=
"border:none"
>
<
template
v-if=
"item.PreferPrice>=0"
>
{{
item
.
PreferPrice
.
toFixed
(
2
)
}}
</
template
>
<
template
v-else
>
<span
class=
"redstyle"
>
{{
item
.
PreferPrice
.
toFixed
(
2
)
}}
</span>
<
template
v-if=
"item.Money>=0"
>
{{
item
.
Money
}}
</
template
>
</td>
<!-- 实收 -->
<td
style=
"border:none"
>
<
template
v-if=
"item.
Income>=0
"
>
{{
item
.
Income
.
toFixed
(
2
)
}}
<
template
v-if=
"item.
OrderStatus===1
"
>
{{
item
.
Money
-
item
.
PlatformTax
}}
</
template
>
<
template
v-else
>
<span
class=
"redstyle"
>
{{
item
.
Income
.
toFixed
(
2
)
}}
</span>
<span
class=
"redstyle"
>
0
</span>
</
template
>
</td>
<td
style=
"color:var(--q-color-negative);border:none"
>
<
!-- <
td style="color:var(--q-color-negative);border:none">
<template v-if="item.DiscountMoney>=0">
{{
item
.
DiscountMoney
.
toFixed
(
2
)
}}
{{item.DiscountMoney
}}
</template>
<template v-else>
<span
class=
"redstyle"
>
{{
item
.
DiscountMoney
.
toFixed
(
2
)
}}
</span>
<span class="redstyle">{{item.DiscountMoney
}}</span>
</template>
</td>
<td style="border:none">
<template v-if="item.LessPrice>=0">
{{
item
.
LessPrice
.
toFixed
(
2
)
}}
{{item.LessPrice
}}
</template>
<template v-else>
<span
class=
"redstyle"
>
{{
item
.
LessPrice
.
toFixed
(
2
)
}}
</span>
<span class="redstyle">{{item.LessPrice
}}</span>
</template>
</td>
</td> -->
<!-- 退款 -->
<td
style=
"border:none"
>
<
template
v-if=
"item.
Refund>=0
"
>
{{
item
.
Refund
.
toFixed
(
2
)
}}
<
template
v-if=
"item.
OrderStatus===1&&item.Status===1
"
>
{{
item
.
Money
}}
</
template
>
<
template
v-else
>
<span
class=
"redstyle"
>
{{
item
.
Refund
.
toFixed
(
2
)
}}
</span>
<span
class=
"redstyle"
>
0
</span>
</
template
>
</td>
<!-- 平台税金 -->
<td
style=
"border:none"
>
<
template
v-if=
"item.PlatformTax>=0"
>
{{
item
.
PlatformTax
.
toFixed
(
2
)
}}
{{
item
.
PlatformTax
}}
</
template
>
<
template
v-else
>
<span
class=
"redstyle"
>
{{
item
.
PlatformTax
.
toFixed
(
2
)
}}
</span>
<span
class=
"redstyle"
>
{{
item
.
PlatformTax
}}
</span>
</
template
>
</td>
<!-- 待收金额 -->
<td
style=
"color:#2961FE;border:none"
>
<
template
v-if=
"item.
DueInMoney>
=0"
>
{{
item
.
DueInMoney
.
toFixed
(
2
)
}}
<
template
v-if=
"item.
OrderStatus===0&&item.Status==
=0"
>
{{
item
.
Money
}}
</
template
>
<
template
v-else
>
<span
class=
"redstyle"
>
{{
item
.
DueInMoney
.
toFixed
(
2
)
}}
</span>
<span
class=
"redstyle"
>
0
</span>
</
template
>
</td>
<!-- 状态 -->
<td
style=
"border:none"
>
<div
style=
"background: rgba(2, 196, 153, 0.2);width: 80px;border-radius: 2px;text-align: center"
>
<span
style=
"color: #02C499"
>
{{item.OrderStateName}}
</span>
<!-- <span style="color: #02C499">{{item.OrderStateName}}</span> -->
<span
style=
"color: #02C499"
v-if=
"item.Status ===0&&item.OrderStatus===0"
>
待支付
</span>
<span
style=
"color: #02C499"
v-if=
"item.Status ===0&&item.OrderStatus===1"
>
正常
</span>
<span
style=
"color: #02C499"
v-if=
"item.Status ===1"
>
已取消
</span>
</div>
</td>
<td
style=
"border:none"
>
<
template
v-if=
"isEditOrder||AuthorityObj.isShowEdit"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"editOrder(item)"
/>
@
click=
"editOrder(item)"
v-if=
"item.EduUserId===loginId"
/>
</
template
>
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left:10px;"
>
<q-list>
<q-item
clickable
v-close-popup
>
<
!-- <
q-item clickable v-close-popup>
<q-item-section @click="gostudent(item)">
<q-item-label>学生名单</q-item-label>
</q-item-section>
</q-item>
</q-item>
-->
<!-- <q-item clickable v-close-popup v-if="AuthorityObj.isShowTransOrder">
<q-item-section @click="transferOrder(item,1)">
<q-item-label>转交订单</q-item-label>
...
...
@@ -250,7 +260,7 @@
</q-item> -->
<q-item
clickable
v-close-popup
disabled
v-if=
"(item.
FinanceList&&item.FinanceList.length>0)||(item.RefundFinanceList&&item.Refu
ndFinanceList.length>0)"
>
v-if=
"(item.
IncomeFinanceList&&item.IncomeFinanceList.length>0)||(item.ExpendFinanceList&&item.Expe
ndFinanceList.length>0)"
>
<q-item-section>
<q-item-label>
取消订单
...
...
@@ -260,169 +270,55 @@
</q-tooltip>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
v-else
>
<q-item
clickable
v-close-popup
disabled
v-else-if=
"item.Status===0&&item.IsApplyForCancel===1&&item.ApplyForCancelStatus===0"
>
<q-item-section>
<q-item-label>
取消订单
</q-item-label>
<q-tooltip
anchor=
"center left"
self=
"center right"
content-class=
"bg-red"
>
取消审核中
</q-tooltip>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
v-else-if=
"item.Status===0&&item.IsApplyForCancel===0&&item.ApplyForCancelStatus===0"
>
<q-item-section
@
click=
"CancelOrder(item)"
>
<q-item-label>
取消订单
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
v-close-popup
v-if=
"AuthorityObj.isShowBackClass"
>
<
!-- <
q-item clickable v-close-popup v-close-popup v-if="AuthorityObj.isShowBackClass">
<q-item-section>
<q-item-label @click="showBackClassForm(item)">退课</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
v-close-popup
v-if=
"AuthorityObj.isShowRenewClass"
>
</q-item>
-->
<
!-- <
q-item clickable v-close-popup v-close-popup v-if="AuthorityObj.isShowRenewClass">
<q-item-section>
<q-item-label @click="showContinueClass(item)">续课</q-item-label>
</q-item-section>
</q-item>
</q-item>
-->
</q-list>
</q-btn-dropdown>
</td>
</tr>
<tr>
<td
:colspan=
"12"
style=
"text-align: left"
>
<div
class=
"row"
v-if=
"item.GuestList&&item.GuestList.length>0"
>
学生名单:
<
template
v-for=
"(x,j) in item.GuestList"
:index=
"j"
>
<span
v-if=
"x.GuestState==1"
style=
"color:#2961FE;margin-right: 5px"
>
{{
x
.
GuestName
}}
</span>
<span
v-else
style=
"color:red;margin-right: 5px"
>
{{
x
.
GuestName
}}
<q-tooltip
:offset=
"[10, 10]"
>
{{
x
.
GuestStateStr
}}
</q-tooltip>
</span>
</
template
>
</div>
<div
v-if=
"AuthorityObj.isShowContract&&item.GuestList&&item.GuestList.length>0"
class=
"takeContract"
>
<span
@
click=
"isShowPop=true"
>
查看合同
</span>
<q-popup-proxy
v-if=
"isShowPop"
>
<q-banner>
<div
style=
"width: 520px;max-height:220px;overflow:auto;"
>
<table
class=
"Contract_Table"
>
<tr>
<th>
姓名
</th>
<th
style=
"width:180px;"
>
合同编号
</th>
<th>
状态
</th>
<th
width=
"170px;"
>
操作
</th>
</tr>
<tr
v-for=
"subItem in item.GuestList"
>
<td>
{{subItem.GuestName}}
</td>
<td>
{{subItem.ContractNo}}
</td>
<td>
{{subItem.ContractStatusStr}}
</td>
<td>
<
template
v-if=
"subItem.ContractId==0"
>
<q-btn
v-if=
"AuthorityObj.isShowEdit"
color=
"accent"
size=
"sm"
@
click=
"takeContractTwo(item,subItem)"
label=
"领取合同"
/>
</
template
>
<
template
v-else
>
<q-btn
color=
"secondary"
size=
"sm"
@
click=
"goContractMannage(subItem)"
label=
"查看合同"
/>
</
template
>
</td>
</tr>
</table>
</div>
</q-banner>
</q-popup-proxy>
</div>
<div
class=
"row"
v-if=
"item.GuestList&&item.GuestList.length>0&&getTkshow(item.GuestList)"
>
退课名单:
<span
v-for=
"(x,j) in item.GuestList"
:index=
"j"
v-if=
"x.GuestState==2"
style=
"color:var(--q-color-negative);margin-right: 5px"
>
{{x.GuestName}}
</span>
</div>
<span
v-if=
"item.GuestList&&item.GuestList.length==0"
>
暂无
</span>
</td>
</tr>
<tr>
<td
:colspan=
"12"
style=
"height: 168px;text-align: left"
>
<div
class=
"col row remarks q-gutter-x-md"
>
<!-- <div class="col">
<div>销售备注:</div>
<div class="remarks-b">
<div v-if="item.SaleRemark!=null||item.SaleRemark!=''">
<div>{{item.SaleRemark}}</div>
<div class="remarks-b-b">
<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px"
v-if="item.SaleRemarkList&&item.SaleRemarkList.length>0"></span>
<q-popup-proxy>
<q-banner>
<div style="width: 500px;">
<div>销售备注</div>
<div v-for="(xq,jq) in item.SaleRemarkList" :index="jq"
style=" margin-top: 10px;background: #e6e6e6;padding: 5px;font-size: 12px">
<div>{{xq.Content}}</div>
<div style="text-align: right">{{xq.CreateBy}} {{xq.CreateTime}}</div>
</div>
</div>
</q-banner>
</q-popup-proxy>
</div>
</div>
<span v-if="item.SaleRemark==null||item.SaleRemark==''">暂无</span>
</div>
</div> -->
<!-- <div class="col">
<div>教务备注:</div>
<div class="remarks-b ">
<div v-if="item.TeacherRemark!=null||item.TeacherRemark!=''">
<div>{{item.TeacherRemark}}</div>
<div class="remarks-b-b">
<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px"
v-if="item.TeacherRemarkList&&item.TeacherRemarkList.length>0"></span>
<q-popup-proxy>
<q-banner>
<div style="width: 500px;">
<div>教务备注</div>
<div v-for="(xq,jq) in item.TeacherRemarkList" :index="jq"
style=" margin-top: 10px;background: #e6e6e6;padding: 5px;font-size: 12px">
<div>{{xq.Content}}</div>
<div style="text-align: right">{{xq.CreateBy}} {{xq.CreateTime}}</div>
</div>
</div>
</q-banner>
</q-popup-proxy>
</div>
</div>
<span v-if="item.TeacherRemark==null||item.TeacherRemark==''">暂无</span>
</div>
</div> -->
<!-- <div class="col">
<div>校长备注:</div>
<div class="remarks-b ">
<div v-if="item.RectorRemark!=null ||item.RectorRemark!=''">
<div>{{item.RectorRemark}}</div>
<div class="remarks-b-b">
<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px"
v-if="item.RectorRemarkList&&item.RectorRemarkList.length>0"></span>
<q-popup-proxy>
<q-banner>
<div style="width: 500px;">
<div>校长备注</div>
<div v-for="(xq,jq) in item.RectorRemarkList" :index="jq"
style=" margin-top: 10px;background: #e6e6e6;padding: 5px;font-size: 12px">
<div>{{xq.Content}}</div>
<div style="text-align: right">{{xq.CreateBy}} {{xq.CreateTime}}</div>
</div>
</div>
</q-banner>
</q-popup-proxy>
</div>
</div>
<span v-if="item.RectorRemark==null||item.RectorRemark==''">暂无</span>
</div>
</div> -->
<!-- <div class="col">
<div>总经理备注:</div>
<div
class=
"col"
>
<div>
客户备注:
</div>
<div
class=
"remarks-b "
>
<div v-if="item.
DirectorRemark!=null||item.Director
Remark!=''">
<div>{{item.
Director
Remark}}</div>
<div class="remarks-b-b">
<div
v-if=
"item.
Remark!=null||item.
Remark!=''"
>
<div>
{{item.Remark}}
</div>
<
!-- <
div class="remarks-b-b">
<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px"
v-if="item.
DirectorRemarkList&&item.DirectorRemarkList
.length>0"></span>
v-if="item.
Remark&&item.Remark
.length>0"></span>
<q-popup-proxy>
<q-banner>
<div style="width: 500px;">
<div>
总经理
备注</div>
<div v-for="(xq,jq) in item.
DirectorRemarkList
" :index="jq"
<div>
客户
备注</div>
<div v-for="(xq,jq) in item.
Remark
" :index="jq"
style=" margin-top: 10px;background: #e6e6e6;padding: 5px;font-size: 12px">
<div>{{xq.Content}}</div>
<div style="text-align: right">{{xq.CreateBy}} {{xq.CreateTime}}</div>
...
...
@@ -430,24 +326,24 @@
</div>
</q-banner>
</q-popup-proxy>
</div>
</div>
-->
</div>
<span v-if="item.
DirectorRemark==null||item.Director
Remark==''">暂无</span>
<span
v-if=
"item.
Remark==null||item.
Remark==''"
>
暂无
</span>
</div>
</div>
-->
</div>
<div
class=
"col"
>
<div>
客户
备注:
</div>
<div>
取消
备注:
</div>
<div
class=
"remarks-b "
>
<div
v-if=
"item.
DirectorRemark!=null||item.Director
Remark!=''"
>
<div>
{{item.
Director
Remark}}
</div>
<div
class=
"remarks-b-b"
>
<div
v-if=
"item.
CancelRemark!=null||item.Cancel
Remark!=''"
>
<div>
{{item.
Cancel
Remark}}
</div>
<
!-- <
div class="remarks-b-b">
<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px"
v-if=
"item.
DirectorRemarkList&&item.DirectorRemarkList
.length>0"
></span>
v-if="item.
CancelRemark&&item.CancelRemark
.length>0"></span>
<q-popup-proxy>
<q-banner>
<div style="width: 500px;">
<div>
客户备注
</div>
<div
v-for=
"(xq,jq) in item.
DirectorRemarkList
"
:index=
"jq"
<div>
取消备注:
</div>
<div v-for="(xq,jq) in item.
CancelRemark
" :index="jq"
style=" margin-top: 10px;background: #e6e6e6;padding: 5px;font-size: 12px">
<div>{{xq.Content}}</div>
<div style="text-align: right">{{xq.CreateBy}} {{xq.CreateTime}}</div>
...
...
@@ -455,9 +351,9 @@
</div>
</q-banner>
</q-popup-proxy>
</div>
</div>
-->
</div>
<span
v-if=
"item.
DirectorRemark==null||item.Director
Remark==''"
>
暂无
</span>
<span
v-if=
"item.
CancelRemark==null||item.Cancel
Remark==''"
>
暂无
</span>
</div>
</div>
<div
class=
"col"
>
...
...
@@ -495,7 +391,7 @@
</
template
>
</div>
<div
class=
"row wrap"
>
<div
class=
"finance row"
v-for=
"(x,j) in item.FinanceList"
:index=
"j"
<div
class=
"finance row"
v-for=
"(x,j) in item.
Income
FinanceList"
:index=
"j"
:style=
"{
background:x.ColorState==1 ? 'rgba(41, 97, 254, 0.2)':(x.ColorState==2 ? 'rgba(2, 196, 153, 0.2)':(x.ColorState==3 ? 'rgba(242, 140, 29, 0.2)':'rgba(63, 196, 255, 0.2)')),
color: x.ColorState==1 ? '#2961FE':(x.ColorState==2 ? '#02C499':(x.ColorState==3 ? '#F28C1D':'#3FC4FF'))}"
>
...
...
@@ -536,7 +432,7 @@
</
template
>
</div>
<div
class=
"row wrap"
>
<div
class=
"finance row"
v-for=
"(x,j) in item.
Refu
ndFinanceList"
:index=
"j"
<div
class=
"finance row"
v-for=
"(x,j) in item.
Expe
ndFinanceList"
:index=
"j"
:style=
"{
background:x.ColorState==1 ? 'rgba(41, 97, 254, 0.2)':(x.ColorState==2 ? 'rgba(2, 196, 153, 0.2)':(x.ColorState==3 ? 'rgba(242, 140, 29, 0.2)':'rgba(63, 196, 255, 0.2)')),
color: x.ColorState==1 ? '#2961FE':(x.ColorState==2 ? '#02C499':(x.ColorState==3 ? '#F28C1D':'#3FC4FF'))}"
>
...
...
@@ -571,47 +467,47 @@
<td
style=
"border:none"
>
{{item.GuestNum}}人
</td>
<td
style=
"border:none"
>
<
template
v-if=
"item.Class_Price>=0"
>
{{
item
.
Class_Price
.
toFixed
(
2
)
}}
{{
item
.
Class_Price
}}
</
template
>
</td>
<td
:style=
"{color:item.Class_Price!=item.
Unit_
Price?'var(--q-color-negative)':'','border':'none'}"
>
<
template
v-if=
"item.
Unit_
Price>=0"
>
{{
item
.
Unit_Price
.
toFixed
(
2
)
}}
<td
:style=
"{color:item.Class_Price!=item.
Unit
Price?'var(--q-color-negative)':'','border':'none'}"
>
<
template
v-if=
"item.
Unit
Price>=0"
>
{{
item
.
UnitPrice
}}
</
template
>
</td>
<td
style=
"border:none"
>
<
template
v-if=
"item.PreferPrice>=0"
>
{{
item
.
PreferPrice
.
toFixed
(
2
)
}}
{{
item
.
PreferPrice
}}
</
template
>
</td>
<td
style=
"border:none"
>
<
template
v-if=
"item.Income>=0"
>
{{
item
.
Income
.
toFixed
(
2
)
}}
{{
item
.
Income
}}
</
template
>
</td>
<td
style=
"color:var(--q-color-negative);border:none"
>
<
template
v-if=
"item.DiscountMoney>=0"
>
{{
item
.
DiscountMoney
.
toFixed
(
2
)
}}
{{
item
.
DiscountMoney
}}
</
template
>
</td>
<td
style=
"border:none"
>
<
template
v-if=
"item.LessPrice>=0"
>
{{
item
.
LessPrice
.
toFixed
(
2
)
}}
{{
item
.
LessPrice
}}
</
template
>
</td>
<td
style=
"border:none"
>
<
template
v-if=
"item.Refund>=0"
>
{{
item
.
Refund
.
toFixed
(
2
)
}}
{{
item
.
Refund
}}
</
template
>
</td>
<td
style=
"border:none"
>
<
template
v-if=
"item.PlatformTax>=0"
>
{{
item
.
PlatformTax
.
toFixed
(
2
)
}}
{{
item
.
PlatformTax
}}
</
template
>
</td>
<td
style=
"color:#2961FE;border:none"
>
<
template
v-if=
"item.DueInMoney&&item.DueInMoney>=0"
>
{{
item
.
DueInMoney
.
toFixed
(
2
)
}}
{{
item
.
DueInMoney
}}
</
template
>
</td>
<td
style=
"border:none"
>
...
...
@@ -776,9 +672,9 @@
</editorder-form>
<!--修改留学就业订单-->
<studyorder-form
v-if=
"isShowStudyOrderForm"
:save-obj=
"orderObj"
:orderType=
"orderObj.OrderType"
<
!-- <
studyorder-form v-if="isShowStudyOrderForm" :save-obj="orderObj" :orderType="orderObj.OrderType"
@close="closeOrderSaveForm" @success="refreshOrder" :modityOrderType="newModityOrderType">
</studyorder-form>
</studyorder-form>
-->
<!--修改订单备注-->
<orderremark-form
v-if=
"isShowRemarkOrderForm"
:save-obj=
"orderObj"
:remarkType=
"remarkType"
...
...
@@ -818,13 +714,13 @@
</template>
<
script
>
import
editorderForm
from
'.
./sale/activeOrder-form'
//修改订单
import
editorderForm
from
'.
/activeOrder-form.vue'
//修改订单/
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
myOrderForm
from
'../../components/sale/my
Active
Order-form'
import
classinfoForm
from
'../../components/course/classinfo-form'
;
//班级信息
import
continueclassForm
from
'../sale/continueclass-form'
//续课申请
import
viewquotationForm
from
'../sale/viewquotation-form'
//报价单信息
...
...
@@ -926,6 +822,7 @@
isEditOrder
:
false
,
//是否有【总经理】修改订单但权限
newModityOrderType
:
0
,
isChaBan
:
0
,
//是否插班(0-正常报入,1-插班报入)
loginId
:
-
1
,
//登录人id
}
},
created
()
{
...
...
@@ -944,8 +841,15 @@
}
})
}
this
.
loginId
=
JSON
.
parse
(
localStorage
.
getItem
(
"loginUserInfo"
)).
data
.
Id
},
watch
:
{
dataList
:
{
handler
(
val
)
{
},
deep
:
true
},
modityOrderType
:
{
handler
(
newValue
)
{
var
localStorageData
=
window
.
localStorage
[
"loginUserInfo"
];
...
...
@@ -967,7 +871,9 @@
immediate
:
true
}
},
mounted
()
{},
mounted
()
{
},
methods
:
{
//初始化权限信息
initAuth
()
{
...
...
@@ -1163,12 +1069,12 @@
editOrder
(
item
)
{
this
.
orderObj
=
item
;
//课程订单
if
(
item
.
OrderType
==
1
)
{
this
.
isShowEditOrderForm
=
true
;
}
else
{
//留学就业订单
this
.
isShowStudyOrderForm
=
true
;
}
this
.
isChaBan
=
item
.
IsChaBan
;
//
if (item.OrderType == 1) {
this
.
isShowEditOrderForm
=
true
;
//
} else { //留学就业订单
//
this.isShowStudyOrderForm = true;
//
}
//
this.isChaBan = item.IsChaBan;
},
//刷新页面
refreshOrder
()
{
...
...
@@ -1187,18 +1093,28 @@
CancelOrder
(
item
)
{
let
that
=
this
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'<span style="color: var(--q-color-negative)">是否取消此订单</span>'
,
title
:
'取消此订单'
,
message
:
'<span style="color: var(--q-color-negative)">请输入取消备注</span>'
,
prompt
:
{
model
:
''
,
isValid
:
val
=>
!!
val
,
//
<<
here
is
the
magic
type
:
'text'
// optional
},
cancel
:
true
,
persistent
:
true
,
html
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
cancelClassOrder
({
OrderId
:
item
.
OrderId
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
}).
onOk
((
data
)
=>
{
let
msg
=
{
ActivityId
:
item
.
ActivityId
,
Id
:
item
.
Id
,
EduUserId
:
that
.
loginId
,
CancelRemark
:
data
}
that
.
apipostDS
(
"/api/Education/CancelCommerceConsult"
,
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
that
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
...
...
@@ -1206,8 +1122,10 @@
message
:
'操作成功'
,
position
:
'top'
})
//调用父页面成功方法
this
.
$emit
(
'success'
);
//调用父页面成功方法
that
.
$emit
(
'success'
);
}
else
{
that
.
Error
(
res
.
data
.
message
)
}
})
})
...
...
src/components/sale/myActiveOrder-form.vue
0 → 100644
View file @
ae926ab5
<
template
>
<q-dialog
v-model=
"dialog"
maximized
full-height
seamless
position=
"right"
>
<q-card
style=
"margin-top:61px;width:970px"
class=
"no-border-radius classinfo_Dialog"
>
<div
class=
"drawerTop2 row"
>
<div
class=
"drawerTop-d"
>
订
</div>
<div
class=
"drawerTop-t"
>
<span
style=
"font-size: 16px;color: #000000;font-weight: bold"
>
订单编号
</span>
<span
style=
"font-size: 12px;color: #666666"
>
{{
saveObj
.
Id
}}
</span>
</div>
<div
style=
"background: rgba(2, 196, 153, 0.2);border-radius: 4px;text-align: center;padding: 2px 13px;margin-left: 30px"
>
<!--
<span
style=
"color: #02C499"
>
{{
Detail
.
OrderStateName
}}
</span>
-->
<span
style=
"color: #02C499"
v-if=
"saveObj.Status ===0&&saveObj.OrderStatus===0"
>
待支付
</span>
<span
style=
"color: #02C499"
v-if=
"saveObj.Status ===0&&saveObj.OrderStatus===1"
>
正常
</span>
<span
style=
"color: #02C499"
v-if=
"saveObj.Status ===1"
>
已取消
</span>
</div>
</div>
<div
style=
"padding:20px 15px;"
class=
"row wrap q-col-gutter-md"
>
<div
class=
"col-6 row"
>
<span
class=
"two-left"
>
关联销售:
</span>
<span
class=
"two-r"
>
{{
saveObj
.
EduSellName
}}
</span>
</div>
<div
class=
"col-6 row"
>
<span
class=
"two-left"
>
创建时间:
</span>
<span
class=
"two-r"
>
{{
saveObj
.
CreateTime
}}
</span>
</div>
<div
class=
"col-6 row"
>
<span
class=
"two-left"
>
应收总额:
</span>
<span
class=
"two-r"
>
{{
getTwoWei
(
saveObj
.
Money
)
}}
</span>
</div>
<div
class=
"col-6 row"
>
<span
class=
"two-left"
>
待收金额:
</span>
<!--
<span
class=
"two-r"
>
{{
getTwoWei
(
saveObj
.
DueInMoney
)
}}
</span>
-->
<template
v-if=
"saveObj.OrderStatus===0&&saveObj.Status===0"
>
{{
getTwoWei
(
saveObj
.
Money
)
}}
</
template
>
<
template
v-else
>
<span
class=
"redstyle"
>
0
</span>
</
template
>
</div>
</div>
<div
style=
"padding: 20px;"
>
<q-tabs
v-model=
"tab"
align=
"left"
class=
"qtabs"
>
<q-tab
name=
"1"
label=
"订单详情"
/>
<!-- <q-tab name="2" label="名单" /> -->
<q-tab
name=
"3"
label=
"备注"
/>
<q-tab
name=
"4"
label=
"财务单据"
/>
<!-- <q-tab name="5" label="日志" /> -->
</q-tabs>
<div
v-if=
"tab==1"
>
<div
class=
"col row"
style=
"font-size: 14px;color:#000;align-items: center;margin-top: 20px"
>
<div
style=
"width: 3px;height: 12px;background: #3FC4FF;margin-right: 10px"
></div>
基本信息
</div>
<div
style=
"padding:20px 15px;"
class=
"row wrap q-col-gutter-md"
>
<!-- <div class="col-6 row">
<span class="two-left">人数:</span>
<span class="two-r">{{Detail.GuestNum}}</span>
</div>
<div class="col-6 row">
<span class="two-left">开班时间:</span>
<span class="two-r">{{Detail.OpenTime}}</span>
</div>
<div class="col-6 row">
<span class="two-left">
<template v-if="Detail.OrderType==1">
班级信息
</template>
<template v-if="Detail.OrderType==2">
产品信息
</template>
:</span>
<span class="two-r">{{Detail.ClassName}}</span>
</div> -->
<!-- <div class="col-6 row">
<span class="two-left">单价:</span>
<span class="two-r">{{getTwoWei(Detail.Class_Price)}}</span>
</div>
<div class="col-6 row">
<span class="two-left">成交单价:</span>
<span class="two-r" style="color: #3FC4FF">{{getTwoWei(Detail.Unit_Price)}}</span>
</div>
<div class="col-6 row">
<span class="two-left">应收金额:</span>
<span class="two-r">{{getTwoWei(Detail.PreferPrice)}}</span>
</div>
<div class="col-6 row">
<span class="two-left">实收金额:</span>
<span class="two-r">{{getTwoWei(Detail.Income)}}</span>
</div>
<div class="col-6 row">
<span class="two-left">优惠金额:</span>
<span class="two-r">{{getTwoWei(Detail.DiscountMoney)}}</span>
</div>
<div class="col-6 row">
<span class="two-left">退款总额:</span>
<span class="two-r">{{getTwoWei(Detail.Refund)}}</span>
</div>
<div class="col-6 row">
<span class="two-left">待收总额:</span>
<span class="two-r" style="color:#2961FE;">{{getTwoWei(Detail.DueInMoney)}}</span>
</div> -->
<div
class=
"col-6 row"
>
<span
class=
"two-left"
>
活动名称:
</span>
<span
class=
"two-r"
>
{{saveObj.ActivityName}}
</span>
</div>
<div
class=
"col-6 row"
>
<span
class=
"two-left"
>
实收:
</span>
<div
class=
"two-r"
>
<
template
v-if=
"saveObj.OrderStatus===1 "
>
{{
saveObj
.
Money
-
saveObj
.
PlatformTax
}}
</
template
>
<
template
v-else
>
<span
class=
"redstyle"
>
0
</span>
</
template
>
</div>
</div>
<div
class=
"col-6 row"
>
<span
class=
"two-left"
>
退款:
</span>
<div
class=
"two-r"
>
<
template
v-if=
"saveObj.OrderStatus===1&&saveObj.Status===1"
>
{{
saveObj
.
Money
}}
</
template
>
<
template
v-else
>
<span
class=
"redstyle"
>
0
</span>
</
template
>
</div>
</div>
<div
class=
"col-6 row"
>
<span
class=
"two-left"
>
平台税金:
</span>
<span
class=
"two-r"
>
{{saveObj.PlatformTax}}
</span>
</div>
</div>
</div>
</div>
<!-- <div v-if="tab==2" style="padding: 10px 20px">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-tow-column-table"
separator="none" :data="data" :columns="columns" row-key="name">
<template v-slot:body-cell-Sex="props">
<q-td :props="props">
<span>{{props.row.Sex==1?'男':'女'}}</span>
</q-td>
</template>
<template v-slot:body-cell-GuestName="props">
<q-td :props="props" class="row" style="align-items: center">
<div
style="width: 34px;height: 34px;border-radius: 50%;background: rgba(41, 97, 254, 0.2);text-align: center;line-height: 34px;font-size: 14px;color: #2961FE;margin-right: 5px">
{{props.row.GuestName.slice(0,1)}}
</div>
{{props.row.GuestName}}
</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>
</div> -->
<div
v-if=
"tab==3"
style=
"padding: 10px 20px"
>
<div
class=
"row"
style=
"justify-content: flex-end"
>
<!-- <div class="row tis">
<div class="tis-k" style="background: #2961FE"></div>
<span>销售备注</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #8175FB"></div>
<span>教务备注</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #F28C1D"></div>
<span>校长备注</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #F72E52"></div>
<span>总经理备注</span>
</div>-->
<div
class=
"row tis"
>
<div
class=
"tis-k"
style=
"background: #2961FE"
></div>
<span>
客人备注
</span>
</div>
<div
class=
"row tis"
>
<div
class=
"tis-k"
style=
"background: #8175FB"
></div>
<span>
取消备注
</span>
</div>
</div>
<div
class=
"q-px-lg q-pb-md"
style=
"padding:20px 0 50px 0;"
>
<el-timeline>
<!-- <el-timeline-item v-for="(activity, index) in data2" :key="index" :color="activity.color" size="large">
<div>
<div class="row" style="font-size: 14px;color: #111111;margin-bottom:10px;">
<span>{{activity.CreateByName}}</span>
<span style="margin-left: 10px">{{activity.CreateTime}}</span>
</div>
<div
style="width: 100%;padding: 15px;line-height: 20px;background: #F0F5FB;border-radius: 4px;font-size: 12px;color: #333333">
{{activity.Content}}
</div>
</div>
</el-timeline-item> -->
<el-timeline-item
color=
"#2961FE"
>
<div
v-if=
"saveObj.Remark"
>
{{saveObj.Remark}}
</div>
<div
v-else
>
暂无
</div>
</el-timeline-item>
<el-timeline-item
color=
"#8175FB"
>
<div
v-if=
"saveObj.CancelRemark"
>
{{saveObj.CancelRemark}}
</div>
<div
v-else
>
暂无
</div>
</el-timeline-item>
</el-timeline>
<!-- <q-pagination class="full-width justify-end" v-model="msg2.PageIndex" color="primary" :max="pageCount2"
:input="true" @input="changePage2" /> -->
</div>
</div>
<div
v-if=
"tab==4"
style=
"padding:0 20px"
>
<div
class=
"row "
style=
"align-items: center;margin-bottom: 20px;"
>
<div
style=
"width: 3px;height: 15px;background: #3FC4FF;margin-right: 10px"
></div>
收款单
</div>
<q-table
:pagination=
"financiaMsg"
:loading=
"floading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table"
:hide-pagination=
"true"
:data=
"dataList"
:columns=
"columnsf"
row-key=
"name"
>
<
template
v-slot:body-cell-FrID=
"props"
>
<q-td
:props=
"props"
@
click=
"goUrl('FinancialDocumentsDetail',props.row)"
>
<span
style=
"font-size: 14px;color: #2961FE;font-weight: bold;cursor: pointer;"
>
{{
props
.
row
.
FrID
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-CostTypeList=
"props"
>
<q-td
:props=
"props"
v-for=
"(s,si) in props.row.CostTypeList"
:key=
"si"
>
<span
style=
"background-color: rgba(64,158,255,.1);display: inline-block;padding: 0 5px;height: 22px;line-height: 20px;font-size: 12px;color: #646464;border-radius: 4px;box-sizing: border-box;border: 1px solid rgba(64,158,255,.2);white-space: nowrap;margin-bottom: 4px;margin-right: 4px;"
>
{{
s
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-shenheren=
"props"
>
<q-td
:props=
"props"
v-for=
"(AuditItem,si) in props.row.AuditList"
:key=
"si"
>
{{
AuditItem
.
AuditEmName
}}
<span
class=
"TB_Rate"
>
{{
AuditItem
.
AuditDate
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-TradeWayList=
"props"
>
<q-td
:props=
"props"
class=
"row"
style=
"align-items: center"
>
<div
v-if=
"props.row.TradeWayList&&props.row.TradeWayList.length>0"
>
<div
v-for=
"childItem in props.row.TradeWayList"
>
支付方式:
{{
childItem
.
Alias
}}
<span
class=
"TB_Rate"
>
币种:
{{
childItem
.
CurrencyName
}}
</span>
<span
class=
"Team_Coins orangeStyle"
>
{{
childItem
.
OriginalMoney
}}
*
{{
childItem
.
Rate
}}
</span>
<span
class=
"TB_Rate"
style=
"margin-left:10px;"
>
汇率:
{{
childItem
.
Rate
}}
</span>
</div>
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-zhaungt=
"props"
>
<q-td
:props=
"props"
>
<i
v-if=
"props.row.Status==1"
class=
"iconfont icon-daiqueren"
style=
"color: #4BCA81"
></i>
<i
v-if=
"props.row.Status==4"
class=
"iconfont icon-yiquxiao"
style=
"color: #4BCA81"
></i>
<i
v-if=
"props.row.Status==2"
class=
"iconfont icon-yiqueren"
style=
"color: #959595"
></i>
<i
v-if=
"props.row.Status==3"
class=
"iconfont icon-shenhebohui"
style=
"color: #E95252"
></i>
<i
v-if=
"props.row.Status==0"
class=
"iconfont icon-zancun"
style=
"color: #FF9C01"
></i>
<span
style=
"cursor: pointer;"
@
click=
"Financial_post_GetFinancLogList(props.row.FrID)"
>
{{
props
.
row
.
StatusStr
}}
</span>
<q-popup-proxy>
<q-banner>
<div
style=
"height: auto;max-height: 220px;background-color: #FFFFFF;width: 230px"
>
<div
class=
"changLog"
>
<p
class=
"_log_t"
>
流程日志
</p>
<ul
style=
"padding-left: 20px;max-height: 180px;overflow: auto;"
v-if=
"GetFinancLogList"
v-loading=
'LogLoading'
>
<li
style=
"border-left: 1px solid #E9E9E9;position: relative;padding-bottom: 10px;padding-left: 20px;padding-top: 10px;"
v-for=
"(log,li) in GetFinancLogList"
>
<span
style=
"background-color: #47BF8C;width: 7px;height: 7px;border-radius: 50%;display: inline-block;position: absolute;left: -4px;top: 19px;"
></span>
<p
class=
"row"
style=
"justify-content: space-between"
>
<span
class=
"_color_blue"
>
{{
log
.
EmName
}}
</span>
<span
class=
"fr changLog_time"
>
{{
log
.
UpdateDate
}}
</span>
</p>
<p
class=
"_dtel"
>
{{
log
.
StartValue
}}
</p>
</li>
</ul>
<ul
v-else
>
<li>
暂无修改日志
</li>
</ul>
</div>
</div>
</q-banner>
</q-popup-proxy>
</q-td>
</
template
>
</q-table>
<!-- 付款单-->
<div
class=
"row "
style=
"align-items: center;margin: 20px 0;"
>
<div
style=
"width: 3px;height: 15px;background: #3FC4FF;margin-right: 10px"
></div>
付款单
</div>
<q-table
:pagination=
"financiaMsg"
style=
"padding-bottom:80px;"
:loading=
"floading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table"
:hide-pagination=
"true"
:data=
"dataListp"
:columns=
"columnsf"
row-key=
"name"
>
<
template
v-slot:body-cell-FrID=
"props"
>
<q-td
:props=
"props"
@
click=
"goUrl('FinancialDocumentsDetail',props.row)"
>
<span
style=
"font-size: 14px;color: #2961FE;font-weight: bold;cursor: pointer;"
>
{{
props
.
row
.
FrID
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-CostTypeList=
"props"
>
<q-td
:props=
"props"
v-for=
"(s,si) in props.row.CostTypeList"
:key=
"si"
>
<span
style=
"background-color: rgba(64,158,255,.1);display: inline-block;padding: 0 5px;height: 22px;line-height: 20px;font-size: 12px;color: #646464;border-radius: 4px;box-sizing: border-box;border: 1px solid rgba(64,158,255,.2);white-space: nowrap;margin-bottom: 4px;margin-right: 4px;"
>
{{
s
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-shenheren=
"props"
>
<q-td
:props=
"props"
v-for=
"(AuditItem,si) in props.row.AuditList"
:key=
"si"
>
{{
AuditItem
.
AuditEmName
}}
<span
class=
"TB_Rate"
>
{{
AuditItem
.
AuditDate
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-TradeWayList=
"props"
>
<q-td
:props=
"props"
class=
"row"
style=
"align-items: center"
>
<div
v-if=
"props.row.TradeWayList&&props.row.TradeWayList.length>0"
>
<div
v-for=
"childItem in props.row.TradeWayList"
>
支付方式:
{{
childItem
.
Alias
}}
<span
class=
"TB_Rate"
>
币种:
{{
childItem
.
CurrencyName
}}
</span>
<span
class=
"Team_Coins orangeStyle"
>
{{
childItem
.
OriginalMoney
}}
*
{{
childItem
.
Rate
}}
</span>
<span
class=
"TB_Rate"
style=
"margin-left:10px;"
>
汇率:
{{
childItem
.
Rate
}}
</span>
</div>
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-zhaungt=
"props"
>
<q-td
:props=
"props"
>
<i
v-if=
"props.row.Status==1"
class=
"iconfont icon-daiqueren"
style=
"color: #4BCA81"
></i>
<i
v-if=
"props.row.Status==4"
class=
"iconfont icon-yiquxiao"
style=
"color: #4BCA81"
></i>
<i
v-if=
"props.row.Status==2"
class=
"iconfont icon-yiqueren"
style=
"color: #959595"
></i>
<i
v-if=
"props.row.Status==3"
class=
"iconfont icon-shenhebohui"
style=
"color: #E95252"
></i>
<i
v-if=
"props.row.Status==0"
class=
"iconfont icon-zancun"
style=
"color: #FF9C01"
></i>
<span
style=
"cursor: pointer;"
@
click=
"Financial_post_GetFinancLogList(props.row.FrID)"
>
{{
props
.
row
.
StatusStr
}}
</span>
<q-popup-proxy>
<q-banner>
<div
style=
"height: auto;max-height: 220px;background-color: #FFFFFF;width: 230px"
>
<div
class=
"changLog"
>
<p
class=
"_log_t"
>
流程日志
</p>
<ul
style=
"padding-left: 20px;max-height: 180px;overflow: auto;"
v-if=
"GetFinancLogList"
v-loading=
'LogLoading'
>
<li
style=
"border-left: 1px solid #E9E9E9;position: relative;padding-bottom: 10px;padding-left: 20px;padding-top: 10px;"
v-for=
"(log,li) in GetFinancLogList"
>
<span
style=
"background-color: #47BF8C;width: 7px;height: 7px;border-radius: 50%;display: inline-block;position: absolute;left: -4px;top: 19px;"
></span>
<p
class=
"row"
style=
"justify-content: space-between"
>
<span
class=
"_color_blue"
>
{{
log
.
EmName
}}
</span>
<span
class=
"fr changLog_time"
>
{{
log
.
UpdateDate
}}
</span>
</p>
<p
class=
"_dtel"
>
{{
log
.
StartValue
}}
</p>
</li>
</ul>
<ul
v-else
>
<li>
暂无修改日志
</li>
</ul>
</div>
</div>
</q-banner>
</q-popup-proxy>
</q-td>
</
template
>
</q-table>
</div>
<div
v-if=
"tab==5"
style=
"padding: 10px 20px"
>
<div
class=
"q-px-lg q-pb-md"
style=
"padding-bottom: 50px;"
>
<el-timeline>
<el-timeline-item
v-for=
"(activity, index) in data3"
:key=
"index"
size=
"large"
>
<div>
<div
class=
"row"
style=
"font-size: 14px;color: #111111"
>
<span>
{{activity.CreateByName}}
</span>
<span
style=
"margin-left: 10px"
>
{{activity.CreateTime}}
</span>
</div>
<div
style=
"width: 100%;padding: 15px;line-height: 20px;background: #F0F5FB;border-radius: 4px;font-size: 12px;color: #333333"
>
{{activity.LogContent}}
</div>
</div>
</el-timeline-item>
</el-timeline>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg3.PageIndex"
color=
"primary"
:max=
"pageCount3"
:input=
"true"
@
input=
"changePage3"
/>
</div>
</div>
</q-card>
<div
class=
"dialog-out-close"
@
click=
"closeSaveForm"
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
{
getOrderGuestPageList
,
getClassOrderRemarkList
,
//获取备注列表
getClassOrderLogList
,
//获取订单操作日志列表
getClassOrderForDetail
}
from
'../../api/sale/sale'
export
default
{
name
:
"myOrder-form"
,
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
,
data
:
[],
pageCount
:
0
,
}
},
data
()
{
return
{
dialog
:
true
,
tab
:
'1'
,
columns
:
[{
name
:
'GuestName'
,
label
:
'名称'
,
// field: 'GuestName',
align
:
'left'
},
{
name
:
'Profession'
,
field
:
'Profession'
,
label
:
'职业'
,
align
:
'left'
,
},
{
name
:
'Sex'
,
label
:
'性别'
,
align
:
'left'
},
{
name
:
'Age'
,
label
:
'年龄'
,
field
:
'Age'
,
align
:
'left'
},
{
name
:
'Mobile'
,
label
:
'电话'
,
field
:
'Mobile'
,
align
:
'left'
},
{
name
:
'Basics'
,
label
:
'日语基础'
,
field
:
'Basics'
,
align
:
'left'
},
{
name
:
'GuestSourceName'
,
label
:
'客户来源'
,
field
:
'GuestSourceName'
,
align
:
'left'
},
{
name
:
'LearningGoalsName'
,
label
:
'学日语目的'
,
field
:
'LearningGoalsName'
,
align
:
'left'
},
],
columnsf
:
[{
name
:
'FrID'
,
label
:
'单号'
,
align
:
'left'
,
},
{
name
:
'CostTypeList'
,
label
:
'费用类型'
,
align
:
'left'
,
},
{
name
:
'TradeWayList'
,
label
:
'交易明细'
,
align
:
'left'
,
},
{
name
:
'Money'
,
field
:
'Money'
,
label
:
'金额'
,
align
:
'left'
,
},
{
name
:
'TradeDate'
,
field
:
'TradeDate'
,
label
:
'交易日期'
,
align
:
'left'
,
},
{
name
:
'EmName'
,
field
:
'RB_CreateByName'
,
label
:
'制单人员'
,
align
:
'left'
,
},
{
name
:
'zhaungt'
,
label
:
'当前状态'
,
align
:
'left'
,
field
:
"StatusStr"
},
{
name
:
'shenheren'
,
label
:
'当前审核人'
,
align
:
'left'
,
field
:
""
},
],
msg
:
{
PageIndex
:
1
,
PageSize
:
12
,
rowsPerPage
:
12
,
OrderId
:
0
,
ClassId
:
0
,
GuestName
:
''
,
GuestState
:
0
,
},
loading
:
false
,
data2
:
[],
pageCount2
:
0
,
msg2
:
{
PageIndex
:
1
,
PageSize
:
6
,
rowsPerPage
:
6
,
OrderId
:
0
,
},
loading2
:
false
,
data3
:
[],
pageCount3
:
0
,
msg3
:
{
PageIndex
:
1
,
PageSize
:
6
,
rowsPerPage
:
6
,
SourceId
:
0
,
},
financiaMsg
:
{
pageIndex
:
1
,
pageSize
:
999
,
rowsPerPage
:
999
,
TCID
:
0
,
OrderID
:
0
,
Type
:
1
,
IsSellOrderForm
:
1
,
IsFormRecPayQuery
:
1
},
dataList
:
[],
dataListP
:
[],
floading
:
false
,
LogLoading
:
false
,
GetFinancLogList
:
[],
Detail
:
{},
}
},
created
()
{
console
.
log
(
507
,
this
.
saveObj
)
if
(
this
.
saveObj
.
tab
)
{
this
.
tab
=
(
this
.
saveObj
.
tab
).
toString
();
}
this
.
msg
.
OrderId
=
this
.
saveObj
.
OrderId
;
this
.
msg2
.
OrderId
=
this
.
saveObj
.
OrderId
;
this
.
msg3
.
SourceId
=
this
.
saveObj
.
OrderId
;
this
.
msg
.
ClassId
=
this
.
saveObj
.
ClassId
;
this
.
getOrderInfo
()
// this.getRolelist()
// this.getRemarkList()
// this.OrderLogList()
},
methods
:
{
Financial_post_GetFinancLogList
:
function
(
id
)
{
// 获取单据日志
this
.
LogLoading
=
true
;
this
.
apipost
(
'Financial_post_GetFinancLogList'
,
{
ID
:
id
,
Type
:
2
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
x
.
UpdateDate
=
this
.
$commonUtils
.
formatMsgTime
(
x
.
UpdateDate
)
})
this
.
LogLoading
=
false
;
this
.
GetFinancLogList
=
data
;
}
},
null
)
},
// getOrderInfo() {
// getClassOrderForDetail({
// OrderId: this.saveObj.Id
// }).then(res => {
// this.Detail = res.Data;
// this.getfinanciaALLPageList(1, this.Detail.ClassId, this.Detail.OrderId) //财务单据
// }).catch(() => {
// })
// },
getOrderInfo
()
{
this
.
apipostDS
(
"/api/Education/GetActivityBalanceSheet"
,
{
Id
:
this
.
saveObj
.
ActivityId
,
OrderId
:
this
.
saveObj
.
Id
},
(
res
)
=>
{
console
.
log
(
553
,
this
.
dataList
)
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
dataList
=
res
.
data
.
data
.
FiniceReciveList
;
this
.
dataListp
=
res
.
data
.
data
.
FinicePayList
;
}
})
},
closeSaveForm
()
{
this
.
$emit
(
'close'
)
this
.
dialog
=
false
},
//翻页
changePage
(
val
)
{
this
.
msg
.
PageIndex
=
val
;
this
.
getRolelist
()
},
//翻页
changePage2
(
val
)
{
this
.
msg2
.
PageIndex
=
val
;
this
.
getRemarkList
()
},
//翻页
changePage3
(
val
)
{
this
.
msg3
.
PageIndex
=
val
;
this
.
OrderLogList
()
},
getRolelist
()
{
//名单
this
.
loading
=
true
getOrderGuestPageList
(
this
.
msg
).
then
(
res
=>
{
this
.
data
=
res
.
Data
.
PageData
this
.
pageCount
=
res
.
Data
.
PageCount
this
.
loading
=
false
}).
catch
(()
=>
{
this
.
loading
=
false
})
},
getRemarkList
()
{
this
.
loading2
=
true
getClassOrderRemarkList
(
this
.
msg2
).
then
(
res
=>
{
this
.
data2
=
res
.
Data
.
PageData
this
.
pageCount2
=
res
.
Data
.
PageCount
;
this
.
data2
.
forEach
(
x
=>
{
if
(
x
.
Type
==
1
)
{
x
.
color
=
'#2961FE'
}
else
if
(
x
.
Type
==
2
)
{
x
.
color
=
'#8175FB'
}
else
if
(
x
.
Type
==
3
)
{
x
.
color
=
'#F28C1D'
}
else
if
(
x
.
Type
==
4
)
{
x
.
color
=
'#F72E52'
}
})
this
.
loading2
=
false
}).
catch
(()
=>
{
this
.
loading2
=
false
})
},
OrderLogList
()
{
getClassOrderLogList
(
this
.
msg3
).
then
(
res
=>
{
this
.
data3
=
res
.
Data
.
PageData
this
.
pageCount3
=
res
.
Data
.
PageCount
;
}).
catch
(()
=>
{
})
},
getfinanciaALLPageList
(
Type
,
TCID
,
OrderID
)
{
this
.
floading
=
true
this
.
financiaMsg
.
TCID
=
TCID
this
.
financiaMsg
.
OrderID
=
OrderID
this
.
financiaMsg
.
Type
=
Type
this
.
apipost
(
'Financial_post_GetALLPageList'
,
this
.
financiaMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
let
data
=
res
.
data
.
data
.
pageData
.
list
;
if
(
Type
===
1
)
{
this
.
dataList
=
data
;
this
.
getfinanciaALLPageList
(
2
,
TCID
,
OrderID
)
}
else
{
this
.
dataListP
=
data
;
this
.
floading
=
false
}
}
else
{
this
.
floading
=
false
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{})
},
goUrl
(
path
,
rowData
,
)
{
this
.
$router
.
push
({
path
:
'/financial/financalDocument/'
+
path
,
query
:
{
"id"
:
rowData
.
FrID
,
blank
:
'y'
,
tab
:
'单据详情'
}
})
},
//返回2位小数
getTwoWei
(
num
)
{
if
(
num
>=
0
)
{
return
num
.
toFixed
(
2
);
}
}
}
}
</
script
>
<
style
scoped
>
.classinfo_Dialog
.drawerTop2
{
padding
:
10px
20px
;
align-items
:
center
;
}
.classinfo_Dialog
.drawerTop-d
{
width
:
34px
;
height
:
34px
;
border-radius
:
50%
;
background
:
rgba
(
40
,
96
,
251
,
0.2
);
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
16px
;
color
:
#2860FB
;
font-weight
:
bold
;
}
.classinfo_Dialog
.drawerTop-t
{
margin-left
:
10px
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-between
;
}
.classinfo_Dialog
.two-left
{
width
:
70px
;
display
:
inline-block
;
font-size
:
12px
;
color
:
#999999
;
text-align
:
right
;
}
.classinfo_Dialog
.two-r
{
font-size
:
12px
;
color
:
#111111
;
}
.classinfo_Dialog
.qtabs
{
border-bottom
:
1px
solid
#E2E2E2
;
}
.classinfo_Dialog
.tis
{
align-items
:
center
}
.classinfo_Dialog
.tis
.tis-k
{
width
:
12px
;
height
:
12px
;
border-radius
:
50%
;
margin-right
:
8px
}
.classinfo_Dialog
.tis
span
{
font-size
:
14px
;
color
:
#2D2D2D
;
font-weight
:
600
;
margin-right
:
20px
}
.classinfo_Dialog
.my-table-details
{
max-width
:
230px
;
white-space
:
normal
;
margin-bottom
:
5px
;
}
.classinfo_Dialog
.my-table-details
p
{
margin
:
0
}
.classinfo_Dialog
.q-px-lg
{
padding
:
0
}
</
style
>
src/components/school/teacher/teacher-form.vue
View file @
ae926ab5
...
...
@@ -11,22 +11,22 @@
class=
"col-6 q-pr-lg q-pb-lg"
label=
"教师名称"
:rules=
"[val => !!val || '请填写教师姓名']"
/>
<q-select
filled
stack-label
option-value=
"SId"
option-label=
"SName"
v-model=
"objOption.School_Id"
ref=
"School_Id"
:options=
"schoolList"
label=
"所属校区"
:dense=
"false"
class=
"col-6 q-pb-lg"
emit-value
map-options
:rules=
"[val => !!val || '请选择所属校区']"
@
input=
"schoolChagne"
/>
map-options
@
input=
"schoolChagne"
/>
<q-input
type=
"tel"
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"objOption.TeacherTel"
ref=
"TeacherTel"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"联系电话"
:rules=
"[val => !!val || '请填写教师联系电话']"
/>
<q-input
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"objOption.TeacherSay"
ref=
"TeacherSay"
class=
"col-6 q-pb-lg"
label=
"教师营销语"
/>
<selectTree
v-if=
"DeptList&&DeptList.length>0"
:treeData=
'DeptList'
:defaultArray=
"returnString"
<selectTree
:treeData=
'DeptList'
:defaultArray=
"returnString"
nodeKey=
"DeptId"
:multiple=
"false"
labelKey=
"DeptName"
childrenKey=
"ChildList"
tipText=
"选择部门"
@
getChild=
"getChild"
classStr=
"col-6 q-pr-lg q-pb-lg"
></selectTree>
<q-select
filled
stack-label
option-value=
"PostId"
option-label=
"PostName"
v-model=
"objOption.Post_Id"
ref=
"Post_Id"
:options=
"PostList"
label=
"岗位"
:dense=
"false"
class=
"col-6 q-p
r
-lg"
emit-value
map-options
/>
ref=
"Post_Id"
:options=
"PostList"
label=
"岗位"
:dense=
"false"
class=
"col-6 q-p
b
-lg"
emit-value
map-options
/>
<q-input
filled
stack-label
maxlength=
"5"
:dense=
"false"
v-model=
"objOption.BaseStuNum"
ref=
"BaseStuNum"
class=
"col-6 q-pb-lg"
label=
"带班基础人数"
@
keyup
.
native=
"checkInteger(objOption,'BaseStuNum')"
/>
class=
"col-6 q-p
r-lg q-p
b-lg"
label=
"带班基础人数"
@
keyup
.
native=
"checkInteger(objOption,'BaseStuNum')"
/>
<q-input
filled
stack-label
maxlength=
"5"
:dense=
"false"
v-model=
"objOption.BaseHourFee"
ref=
"BaseHourFee"
class=
"col-6 q-p
r
-lg"
label=
"基础课时费"
@
keyup
.
native=
"checkPrice(objOption,'BaseHourFee')"
/>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"Name"
v-model=
"chooseSpecialty"
ref=
"S
chool_Id
"
:options=
"SpecialtyList"
label=
"老师特长"
:dense=
"false"
class=
"col-6 q-pb-lg"
emit-value
map-options
class=
"col-6 q-p
b
-lg"
label=
"基础课时费"
@
keyup
.
native=
"checkPrice(objOption,'BaseHourFee')"
/>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"Name"
v-model=
"chooseSpecialty"
ref=
"S
pecialtyList
"
:options=
"SpecialtyList"
label=
"老师特长"
:dense=
"false"
class=
"col-6 q-p
r-lg q-p
b-lg"
emit-value
map-options
@
input=
"schoolChagne"
multiple
clearable
/>
</div>
...
...
@@ -332,11 +332,9 @@
if
(
this
.
objOption
.
Dept_Id
&&
this
.
objOption
.
Dept_Id
==
""
)
{
this
.
objOption
.
Dept_Id
=
0
;
}
this
.
$refs
.
School_Id
.
validate
()
this
.
$refs
.
TeacherName
.
validate
()
this
.
$refs
.
TeacherTel
.
validate
()
if
(
!
this
.
$refs
.
School_Id
.
hasError
&&
!
this
.
$refs
.
TeacherName
.
hasError
&&
!
this
.
$refs
.
TeacherTel
.
hasError
)
{
...
...
src/pages/activity/activeDetail.vue
View file @
ae926ab5
...
...
@@ -128,11 +128,8 @@ import DetailItem from "../../components/activity/activeDetail-item"
let
res
=
this
.
$refs
.
child
.
every
(
x
=>
{
return
x
.
ruleVerification
();
})
console
.
log
(
'res'
,
res
)
if
(
res
){
this
.
apipostDS
(
"/api/Education/GetSetActivityPlan"
,
this
.
msg
,
(
res
)
=>
{
console
.
log
(
136
,
res
)
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
res
.
data
.
message
);
}
else
{
...
...
src/pages/activity/makeAd.vue
View file @
ae926ab5
...
...
@@ -607,7 +607,6 @@
this
.
st
=
data
.
SamplePicturesUrl
+
'?width=470'
this
.
templateId
=
data
.
AdvertisingID
this
.
nodes
=
JSON
.
parse
(
data
.
Content
)
console
.
log
(
'596'
,
this
.
nodes
)
this
.
nodes
.
forEach
(
y
=>
{
this
.
currentZIndex
=
y
.
zindex
>
this
.
currentZIndex
?
y
.
zindex
:
this
.
currentZIndex
this
.
currentMaxId
=
y
.
nodeId
>
this
.
currentMaxId
?
y
.
nodeId
:
this
.
currentMaxId
...
...
@@ -639,7 +638,6 @@
let
blob
=
that
.
base64ToBlob
(
imgUrl
)
UploadViittoBlobFile
(
"Edu"
,
blob
,(
res
)
=>
{
this
.
isLoading
=
false
;
console
.
log
(
671
,
res
);
if
(
res
.
Code
===
1
){
msg
.
AdvertisingPicUrl
=
res
.
FileUrl
new
browserMD5File
(
blob
,
function
(
err
,
md5
)
{
...
...
src/pages/activity/payment.vue
View file @
ae926ab5
...
...
@@ -583,7 +583,7 @@
// "ReFinanceId":this.msg.Id,
// "companyID": this.msg.Id,
// "path": "",
//
'blank': 'y',
'blank'
:
'y'
,
'orderObj'
:
JSON
.
stringify
(
orderObj
),
// 'tradeWay': '',
}
...
...
src/pages/course/chapter.vue
View file @
ae926ab5
...
...
@@ -3,67 +3,36 @@
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
></div>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"编辑章节"
@
click=
"EditChapter(null)"
/>
<q-btn
v-if=
"IsOperateAuth"
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"编辑章节"
@
click=
"EditChapter(null)"
/>
</div>
</div>
<div
class=
"page-content"
style=
"height:calc(100% - 42px)"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:content-style=
"contentStyle"
:content-active-style=
"contentActiveStyle"
style=
"height: 100%; width: 100%;"
>
<el-table
:data=
"dataList"
v-loading=
"loading"
:expand-row-keys=
"expandKeys"
:default-expand-all=
"true"
:row-class-name=
"tableRowClassName"
class=
"tree-tab-chapter"
style=
"width: 100%;margin-bottom: 20px;"
row-key=
"ChapterId"
ref=
"chapterTab"
@
row-click=
"rowsClick"
:tree-props=
"
{ children: 'ChildList', hasChildren: 'hasChildren' }"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:content-style=
"contentStyle"
:content-active-style=
"contentActiveStyle"
style=
"height: 100%; width: 100%;"
>
<el-table
:data=
"dataList"
v-loading=
"loading"
:expand-row-keys=
"expandKeys"
:default-expand-all=
"true"
:row-class-name=
"tableRowClassName"
class=
"tree-tab-chapter"
style=
"width: 100%;margin-bottom: 20px;"
row-key=
"ChapterId"
ref=
"chapterTab"
@
row-click=
"rowsClick"
:tree-props=
"
{ children: 'ChildList', hasChildren: 'hasChildren' }">
<el-table-column
prop=
"date"
label=
"章节"
width=
"450"
>
<template
slot-scope=
"scope"
>
<div
style=
"display: inline-block;"
>
<div
class=
"flex q-ml-md"
>
<div
class=
"catalog_num"
v-if=
"scope.row.ChapterNo.indexOf('.') == -1"
>
<div
class=
"catalog_num"
v-if=
"scope.row.ChapterNo.indexOf('.') == -1"
style=
"cursor:pointer;"
>
<span>
<i>
{{
scope
.
row
.
ChapterNo
}}
</i>
</span>
</div>
<div
style=
"margin-left: 36px;width:360px;"
class=
"ellipsis"
v-if=
"scope.row.ChapterNo.indexOf('.') == -1"
>
<div
style=
"margin-left: 36px;width:360px;cursor:pointer;"
class=
"ellipsis"
v-if=
"scope.row.ChapterNo.indexOf('.') == -1"
>
{{
scope
.
row
.
ChapterName
}}
</div>
<div
v-if=
"scope.row.ChapterNo.indexOf('.') != -1"
:style=
"
{ marginLeft: 20 * (scope.row.ChapterNo.split('.').length+1 - 2) + 'px' }"
>
<div
v-if=
"scope.row.ChapterNo.indexOf('.') != -1"
:style=
"
{ marginLeft: 20 * (scope.row.ChapterNo.split('.').length+1 - 2) + 'px' }">
{{
scope
.
row
.
ChapterNo
}}
</div>
<div
v-if=
"scope.row.ChapterNo.indexOf('.') != -1"
style=
"margin-left: 12px;"
class=
"ellipsis"
:style=
"
{width:(350-(20 * (scope.row.ChapterNo.split('.').length+1 - 2)))+'px'}"
>
<div
v-if=
"scope.row.ChapterNo.indexOf('.') != -1"
style=
"margin-left: 12px;"
class=
"ellipsis"
:style=
"
{width:(350-(20 * (scope.row.ChapterNo.split('.').length+1 - 2)))+'px'}">
{{
scope
.
row
.
ChapterName
}}
</div>
</div>
...
...
@@ -77,7 +46,7 @@
</el-table-column>
<el-table-column
prop=
"address"
label=
"章节详情"
width=
"200"
>
<
template
slot-scope=
"scope"
>
<q-btn
flat
color=
"primary"
v-if=
"scope.row.ChapterNo.indexOf('.') != -1"
@
click
.
stop=
"viewDetail(scope.row)"
>
章节详情
</q-btn>
<q-btn
flat
color=
"primary"
@
click
.
stop=
"viewDetail(scope.row)"
>
章节详情
</q-btn>
</
template
>
</el-table-column>
<el-table-column
prop=
"address"
label=
"状态"
width=
"100"
>
...
...
@@ -91,28 +60,11 @@
<el-table-column
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<div
class=
"text-right op-box"
>
<q-btn
size=
"xs"
class=
"q-mr-md"
color=
"dark"
@
click
.
stop=
"EditChapter(scope.row.ChapterId)"
>
修改
</q-btn
>
<!--
<q-btn
size=
"xs"
flat
color=
"primary"
@
click
.
stop=
""
class=
"q-mr-md"
>
设置
</q-btn
>
-->
<q-btn
size=
"xs"
flat
color=
"negative"
@
click
.
stop=
"deleteObj(scope.row)"
>
删除
</q-btn
>
<template
v-if=
"IsOperateAuth"
>
<q-btn
size=
"xs"
class=
"q-mr-md"
color=
"dark"
@
click
.
stop=
"EditChapter(scope.row.ChapterId)"
>
修改
</q-btn>
<q-btn
size=
"xs"
flat
color=
"negative"
@
click
.
stop=
"deleteObj(scope.row)"
>
删除
</q-btn>
</
template
>
</div>
</template>
</el-table-column>
...
...
@@ -126,10 +78,10 @@
<q-space
/>
<q-btn
icon=
"close"
flat
round
dense
v-close-popup
/>
</q-card-section>
<q-card-section>
<div
class=
"text-subtitle1 q-mb-md"
>
章节学习内容
</div>
<div
v-html=
"viewObj.ChapterContent"
v-if=
"viewObj.ChapterContent!=''"
class=
"q-pa-md bg-grey-2 rounded-borders"
></div>
<div
v-html=
"viewObj.ChapterContent"
v-if=
"viewObj.ChapterContent!=''"
class=
"q-pa-md bg-grey-2 rounded-borders"
></div>
<div
class=
"text-grey-3 text-center"
v-else
>
未添加内容
</div>
</q-card-section>
<q-card-section>
...
...
@@ -148,277 +100,294 @@
</template>
<
script
>
import
{
queryChapterTree
,
batchUpdateChapterNo
,
deleteChapters
}
from
"../../api/course/index"
;
import
{
openURL
}
from
"quasar"
;
export
default
{
meta
:
{
title
:
"章节管理"
},
computed
:
{},
watch
:
{},
data
()
{
return
{
currentUrl
:
""
,
selectedRowID
:
{},
dataList
:
[],
loading
:
true
,
msg
:
{
CourseId
:
0
},
CourseId
:
0
,
contentStyle
:
{
backgroundColor
:
"rgba(0,0,0,0.02)"
,
color
:
"#555"
},
contentActiveStyle
:
{
backgroundColor
:
"#eee"
,
color
:
"black"
},
thumbStyle
:
{
right
:
"2px"
,
borderRadius
:
"5px"
,
backgroundColor
:
"#027be3"
,
width
:
"5px"
,
opacity
:
0.75
},
expandKeys
:
[],
updateChapters
:
[],
updateNo
:
false
,
viewObj
:
null
,
isViewer
:
false
};
},
created
()
{
if
(
this
.
$route
.
query
.
CourseId
)
{
this
.
CourseId
=
this
.
$route
.
query
.
CourseId
;
this
.
msg
.
CourseId
=
this
.
CourseId
;
}
},
mounted
()
{
this
.
currentUrl
=
this
.
$route
.
path
;
this
.
getchaperTree
();
},
methods
:
{
viewDetail
(
obj
){
try
{
obj
.
ChapterContent
=
decodeURIComponent
(
obj
.
ChapterContent
)
obj
.
Objectives
=
decodeURIComponent
(
obj
.
Objectives
)
obj
.
Requirement
=
decodeURIComponent
(
obj
.
Requirement
)
}
catch
(
error
)
{
}
this
.
viewObj
=
obj
this
.
isViewer
=
true
import
{
queryChapterTree
,
batchUpdateChapterNo
,
deleteChapters
}
from
"../../api/course/index"
;
import
{
openURL
}
from
"quasar"
;
export
default
{
meta
:
{
title
:
"章节管理"
},
tableRowClassName
({
row
,
rowIndex
})
{
if
(
row
.
ChapterNo
.
indexOf
(
"."
)
==
-
1
)
{
return
"first-level-node"
;
}
return
""
;
computed
:
{},
watch
:
{},
data
()
{
return
{
currentUrl
:
""
,
selectedRowID
:
{},
dataList
:
[],
loading
:
true
,
msg
:
{
CourseId
:
0
},
CourseId
:
0
,
contentStyle
:
{
backgroundColor
:
"rgba(0,0,0,0.02)"
,
color
:
"#555"
},
contentActiveStyle
:
{
backgroundColor
:
"#eee"
,
color
:
"black"
},
thumbStyle
:
{
right
:
"2px"
,
borderRadius
:
"5px"
,
backgroundColor
:
"#027be3"
,
width
:
"5px"
,
opacity
:
0.75
},
expandKeys
:
[],
updateChapters
:
[],
updateNo
:
false
,
viewObj
:
null
,
isViewer
:
false
,
IsOperateAuth
:
false
,
//是否有章节【新增、修改、删除】权限
};
},
deleteObj
(
data
)
{
this
.
$q
.
dialog
({
title
:
"删除确认"
,
message
:
"删除章节节点将会连同下属章节也会一并删除且无法恢复,你确定要这样执行吗"
,
cancel
:
{
label
:
"取消删除"
,
flat
:
true
},
ok
:
{
label
:
"确认"
,
flat
:
true
,
focus
:
true
,
color
:
"negative"
created
()
{
var
localStorageData
=
window
.
localStorage
[
"loginUserInfo"
];
let
ActionMenuList
=
JSON
.
parse
(
localStorageData
).
data
.
ActionMenuList
if
(
ActionMenuList
&&
ActionMenuList
.
length
>
0
)
{
ActionMenuList
.
forEach
(
x
=>
{
if
(
x
.
FunctionCode
==
'Operate_CourseChapter'
)
{
this
.
IsOperateAuth
=
true
;
}
})
.
onOk
(()
=>
{
deleteChapters
({
CourseId
:
this
.
msg
.
CourseId
,
ChapterNo
:
data
.
ChapterNo
+
"."
,
ChapterId
:
data
.
ChapterId
}).
then
(
r
=>
{
this
.
updateNo
=
true
;
this
.
getchaperTree
();
//this.$refs.chapterTree.remove(data.ChapterId);
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"删除成功!"
,
position
:
"top"
});
});
})
.
onCancel
(()
=>
{
// console.log('>>>> Cancel')
});
}
if
(
this
.
$route
.
query
.
CourseId
)
{
this
.
CourseId
=
this
.
$route
.
query
.
CourseId
;
this
.
msg
.
CourseId
=
this
.
CourseId
;
}
},
batchUpdate
()
{
batchUpdateChapterNo
(
this
.
updateChapters
).
then
(
r
=>
{});
mounted
()
{
this
.
currentUrl
=
this
.
$route
.
path
;
this
.
getchaperTree
();
},
genernalNo
(
parentNo
,
list
)
{
list
.
forEach
((
x
,
i
)
=>
{
if
(
parentNo
!=
""
)
{
x
.
ChapterNo
=
parentNo
+
"."
+
(
i
+
1
);
}
else
{
x
.
ChapterNo
=
(
i
+
1
).
toString
();
methods
:
{
viewDetail
(
obj
)
{
try
{
obj
.
ChapterContent
=
decodeURIComponent
(
obj
.
ChapterContent
)
obj
.
Objectives
=
decodeURIComponent
(
obj
.
Objectives
)
obj
.
Requirement
=
decodeURIComponent
(
obj
.
Requirement
)
}
catch
(
error
)
{
}
this
.
updateChapters
.
push
({
ChapterNo
:
x
.
ChapterNo
,
ChapterId
:
x
.
ChapterId
,
ParentId
:
x
.
ParentId
});
if
(
x
.
ChildList
&&
x
.
ChildList
.
length
>
0
)
{
x
.
ChildList
=
this
.
genernalNo
(
x
.
ChapterNo
,
x
.
ChildList
);
this
.
viewObj
=
obj
this
.
isViewer
=
true
},
tableRowClassName
({
row
,
rowIndex
})
{
if
(
row
.
ChapterNo
.
indexOf
(
"."
)
==
-
1
)
{
return
"first-level-node"
;
}
});
return
list
;
},
rowsClick
(
row
,
column
,
event
)
{
//console.log(row,event)
this
.
$refs
.
chapterTab
.
toggleRowExpansion
(
row
);
},
//新增修改章节
EditChapter
(
obj
)
{
// this.$router.push({
// path: '/chapter-editor?courseId='+this.CourseId
// });
if
(
!
obj
)
{
openURL
(
window
.
location
.
origin
+
return
""
;
},
deleteObj
(
data
)
{
this
.
$q
.
dialog
({
title
:
"删除确认"
,
message
:
"删除章节节点将会连同下属章节也会一并删除且无法恢复,你确定要这样执行吗"
,
cancel
:
{
label
:
"取消删除"
,
flat
:
true
},
ok
:
{
label
:
"确认"
,
flat
:
true
,
focus
:
true
,
color
:
"negative"
}
})
.
onOk
(()
=>
{
deleteChapters
({
CourseId
:
this
.
msg
.
CourseId
,
ChapterNo
:
data
.
ChapterNo
+
"."
,
ChapterId
:
data
.
ChapterId
}).
then
(
r
=>
{
this
.
updateNo
=
true
;
this
.
getchaperTree
();
//this.$refs.chapterTree.remove(data.ChapterId);
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"删除成功!"
,
position
:
"top"
});
});
})
.
onCancel
(()
=>
{
// console.log('>>>> Cancel')
});
},
batchUpdate
()
{
batchUpdateChapterNo
(
this
.
updateChapters
).
then
(
r
=>
{});
},
genernalNo
(
parentNo
,
list
)
{
list
.
forEach
((
x
,
i
)
=>
{
if
(
parentNo
!=
""
)
{
x
.
ChapterNo
=
parentNo
+
"."
+
(
i
+
1
);
}
else
{
x
.
ChapterNo
=
(
i
+
1
).
toString
();
}
this
.
updateChapters
.
push
({
ChapterNo
:
x
.
ChapterNo
,
ChapterId
:
x
.
ChapterId
,
ParentId
:
x
.
ParentId
});
if
(
x
.
ChildList
&&
x
.
ChildList
.
length
>
0
)
{
x
.
ChildList
=
this
.
genernalNo
(
x
.
ChapterNo
,
x
.
ChildList
);
}
});
return
list
;
},
rowsClick
(
row
,
column
,
event
)
{
//console.log(row,event)
this
.
$refs
.
chapterTab
.
toggleRowExpansion
(
row
);
},
//新增修改章节
EditChapter
(
obj
)
{
// this.$router.push({
// path: '/chapter-editor?courseId='+this.CourseId
// });
if
(
!
obj
)
{
openURL
(
window
.
location
.
origin
+
"/#/course/chapter-editor?courseId="
+
this
.
CourseId
);
}
else
{
openURL
(
window
.
location
.
origin
+
);
}
else
{
openURL
(
window
.
location
.
origin
+
"/#/course/chapter-editor?courseId="
+
this
.
CourseId
+
"&chapter="
+
obj
);
}
},
//获取菜单分页列表
getchaperTree
()
{
this
.
loading
=
true
;
queryChapterTree
(
this
.
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
res
.
Data
.
forEach
(
x
=>
{
this
.
expandKeys
.
push
(
x
.
ChapterId
);
});
console
.
log
(
this
.
expandKeys
);
);
}
},
//获取菜单分页列表
getchaperTree
()
{
this
.
loading
=
true
;
queryChapterTree
(
this
.
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
res
.
Data
.
forEach
(
x
=>
{
this
.
expandKeys
.
push
(
x
.
ChapterId
);
});
console
.
log
(
this
.
expandKeys
);
this
.
dataList
=
res
.
Data
;
if
(
this
.
updateNo
)
{
this
.
updateNo
=
false
;
this
.
updateChapters
=
[];
this
.
genernalNo
(
""
,
this
.
dataList
);
if
(
this
.
updateChapters
&&
this
.
updateChapters
.
length
>
0
)
{
this
.
batchUpdate
();
this
.
dataList
=
res
.
Data
;
if
(
this
.
updateNo
)
{
this
.
updateNo
=
false
;
this
.
updateChapters
=
[];
this
.
genernalNo
(
""
,
this
.
dataList
);
if
(
this
.
updateChapters
&&
this
.
updateChapters
.
length
>
0
)
{
this
.
batchUpdate
();
}
}
}
})
.
catch
(()
=>
{
this
.
loading
=
false
;
});
}
)
.
catch
(()
=>
{
this
.
loading
=
false
;
})
;
}
}
}
};
}
;
</
script
>
<
style
>
.tree-tab-chapter
thead
{
display
:
none
;
}
.tree-tab-chapter
thead
{
display
:
none
;
}
.tree-tab-chapter
td
{
border-bottom
:
none
!important
;
padding
:
5px
0
!important
;
}
.tree-tab-chapter
td
{
border-bottom
:
none
!important
;
padding
:
5px
0
!important
;
}
.tree-tab-chapter
::before
{
display
:
none
!important
;
}
.tree-tab-chapter
::before
{
display
:
none
!important
;
}
.tree-tab-chapter
.el-table__expand-icon
{
/* display: none !important; */
margin-right
:
0
!important
;
}
.tree-tab-chapter
.el-table__expand-icon
{
/* display: none !important; */
margin-right
:
0
!important
;
}
.tree-tab-chapter
.catalog_num
{
height
:
20px
;
padding-left
:
14px
;
background
:
#d0d5db
;
border-radius
:
10px
;
margin
:
10px
20px
0
0
;
position
:
absolute
;
left
:
15px
;
top
:
50%
;
margin-top
:
-10px
;
}
.tree-tab-chapter
.catalog_num
{
height
:
20px
;
padding-left
:
14px
;
background
:
#d0d5db
;
border-radius
:
10px
;
margin
:
10px
20px
0
0
;
position
:
absolute
;
left
:
15px
;
top
:
50%
;
margin-top
:
-10px
;
}
.tree-tab-chapter
.catalog_num
>
span
{
min-width
:
24px
;
height
:
24px
;
padding
:
4px
;
margin
:
-2px
-4px
0
0
;
background
:
#d0d5db
;
display
:
block
;
border-radius
:
20px
;
}
.tree-tab-chapter
.catalog_num
>
span
{
min-width
:
24px
;
height
:
24px
;
padding
:
4px
;
margin
:
-2px
-4px
0
0
;
background
:
#d0d5db
;
display
:
block
;
border-radius
:
20px
;
}
.tree-tab-chapter
.catalog_num
>
span
>
i
{
min-width
:
16px
;
height
:
16px
;
padding
:
0
2px
;
line-height
:
16px
;
background
:
#fff
;
font-size
:
12px
;
font-family
:
Arial
;
color
:
#a8a8b3
;
border-radius
:
20px
;
display
:
block
;
text-align
:
center
;
font-style
:
normal
;
}
.tree-tab-chapter
.catalog_num
>
span
>
i
{
min-width
:
16px
;
height
:
16px
;
padding
:
0
2px
;
line-height
:
16px
;
background
:
#fff
;
font-size
:
12px
;
font-family
:
Arial
;
color
:
#a8a8b3
;
border-radius
:
20px
;
display
:
block
;
text-align
:
center
;
font-style
:
normal
;
}
.tree-tab-chapter
.first-level-node
{
background-color
:
#f5f7fa
!important
;
}
.tree-tab-chapter
.first-level-node
{
background-color
:
#f5f7fa
!important
;
}
.tree-tab-chapter
.first-level-node
td
:first-child
{
border-top-left-radius
:
12px
;
border-bottom-left-radius
:
12px
;
}
.tree-tab-chapter
.first-level-node
td
:first-child
{
border-top-left-radius
:
12px
;
border-bottom-left-radius
:
12px
;
}
.tree-tab-chapter
.first-level-node
td
:last-child
{
border-top-right-radius
:
12px
;
border-bottom-right-radius
:
12px
;
}
.tree-tab-chapter
.first-level-node
td
:last-child
{
border-top-right-radius
:
12px
;
border-bottom-right-radius
:
12px
;
}
.tree-tab-chapter
tr
.op-box
{
display
:
none
;
}
.tree-tab-chapter
tr
:hover
.op-box
{
display
:
block
;
}
.tree-tab-chapter
.el-table__indent
{
display
:
none
!important
;
}
.tree-tab-chapter
.el-table__expand-icon
{
display
:
none
!important
;
}
.tree-tab-chapter
tr
.op-box
{
display
:
none
;
}
/**@import url('~assets/css/table.sass')*/
.tree-tab-chapter
tr
:hover
.op-box
{
display
:
block
;
}
.tree-tab-chapter
.el-table__indent
{
display
:
none
!important
;
}
.tree-tab-chapter
.el-table__expand-icon
{
display
:
none
!important
;
}
/**@import url('~assets/css/table.sass')*/
</
style
>
src/pages/course/chapterEditor.vue
View file @
ae926ab5
<
template
>
<!--
<div
class=
"flex flex-start window-height"
style=
"min-width:1300px;overflow-x:auto;overlfow-y:hidden;"
>
-->
<div
class=
"flex flex-start window-height"
>
<q-splitter
v-model=
"splitterModel"
style=
"height: 100%;width:100%"
>
<q-splitter
v-model=
"splitterModel"
:limits=
"[30, 100]"
style=
"height: 100%;width:100%"
>
<template
v-slot:before
>
<div
class=
"q-pa-lg full-height"
>
<div
class=
"q-pa-lg full-height"
style=
"min-width:380px;"
>
<q-card
class=
"q-pa-md bg-dark text-white q-mb-lg"
>
<span>
{{
courseInfo
.
CourseName
}}
</span>
</q-card>
...
...
@@ -13,7 +14,11 @@
icon=
"iconfont icon-up"
></q-btn>
<q-btn
color=
"primary"
size=
"xs"
title=
"向下移动"
:disable=
"!canDown"
@
click=
"moveDown"
outline
icon=
"iconfont icon-down1"
></q-btn>
<q-btn
color=
"primary"
size=
"xs"
title=
"导入 ..."
unelevated
label=
"导入 ..."
></q-btn>
<q-btn
color=
"primary"
size=
"xs"
unelevated
label=
"导入 ..."
>
<q-tooltip>
此功能正在开发中。。。
</q-tooltip>
</q-btn>
</div>
<div
class=
"q-mt-lg"
style=
"height:calc(100% - 140px)"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:content-style=
"contentStyle"
...
...
@@ -27,8 +32,8 @@
<div
class=
"row chapter-node full-width"
slot-scope=
"
{ node, data }">
<div
class=
"q-mr-md"
>
{{
data
.
ChapterNo
.
length
>
1
?
data
.
ChapterNo
:
`0${data.ChapterNo
}
`
}}
<
/div
>
<
div
class
=
"col q-mr-xs"
v
-
if
=
"editorNodeId==data.ChapterId"
>
<
input
type
=
"text"
@
click
.
stop
=
""
@
blur
=
"changeChapterName(data)"
maxlength
=
"100"
@
click
.
native
=
"ChapterNameClick
"
class
=
"tree-input"
v
-
focus
v
-
model
=
"data.ChapterName"
<
input
type
=
"text"
@
blur
=
"changeChapterName(data)"
maxlength
=
"100"
draggable
=
"true
"
class
=
"tree-input"
v
-
focus
v
-
model
=
"data.ChapterName"
@
focus
=
"selectValue($event)"
/>
<
/div
>
<
div
class
=
"col q-mr-md ellipsis"
v
-
if
=
"editorNodeId!=data.ChapterId"
>
{{
data
.
ChapterName
}}
<
/div
>
...
...
@@ -49,7 +54,7 @@
<
/div
>
<
/template
>
<
template
v
-
slot
:
after
>
<
div
class
=
"col full-height q-pa-lg chapter-content scroll"
>
<
div
class
=
"col full-height q-pa-lg chapter-content scroll"
style
=
"min-width:900px;"
>
<
div
v
-
if
=
"chapter"
>
<
div
class
=
"text-h6 q-mb-md"
>
章节学习内容
<
/div
>
<
div
class
=
"row q-mb-md"
>
...
...
@@ -82,7 +87,6 @@
<!--
<
div
v
-
else
class
=
"text-center text-h5 text-grey-4 q-mt-lg"
>
单元节点不支持编辑相关内容
<
/div> --
>
<
/div
>
<
/div
>
<
/template
>
<
/q-splitter
>
<
q
-
btn
round
padding
=
"md"
v
-
if
=
"chapter && chapter.ChapterId>0"
@
click
=
"saveChapterUpdate"
:
loading
=
"submiting"
...
...
@@ -208,9 +212,6 @@
this
.
rateList
=
r
.
Data
}
)
}
,
ChapterNameClick
()
{
}
,
changeNode
(
data
,
node
,
ev
)
{
if
(
this
.
chapter
&&
this
.
chapter
.
ChapterId
>
0
)
{
...
...
@@ -219,7 +220,7 @@
this
.
chapter
.
CourseRateName
=
this
.
defauRateObj
.
Name
}
if
(
!
compareObject
(
this
.
bakObj
,
this
.
chapter
,
false
))
{
this
.
saveChapterUpdate
()
this
.
saveChapterUpdate
(
1
)
if
(
this
.
bakObj
.
CourseRate
!=
this
.
chapter
.
CourseRate
)
{
if
(
this
.
chapter
.
ChildList
&&
this
.
chapter
.
ChildList
.
length
>
0
)
{
this
.
updateRate
()
...
...
@@ -312,7 +313,7 @@
}
)
}
,
saveChapterUpdate
()
{
saveChapterUpdate
(
type
)
{
if
(
!
this
.
submiting
)
{
this
.
submiting
=
true
if
(
this
.
defauRateObj
.
Id
!=
0
)
{
...
...
@@ -326,11 +327,17 @@
msg
.
Requirement
=
encodeURIComponent
(
msg
.
Requirement
)
saveChapter
(
msg
).
then
(
r
=>
{
this
.
submiting
=
false
let
msg
=
''
;
if
(
type
==
1
){
msg
=
'自动保存成功!'
}
else
{
msg
=
'数据保存成功!'
}
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据保存成功!'
,
message
:
msg
,
position
:
'top'
}
)
if
(
this
.
bakObj
.
CourseRate
!=
this
.
defauRateObj
.
Id
)
{
...
...
@@ -592,9 +599,9 @@
.
chapter
-
tree
.
chapter
-
node
.
rate
-
box
{
display
:
block
;
}
.
chapter
-
tree
.
el
-
tree
-
node__content
{
height
:
32
px
!
important
;
padding
-
right
:
20
px
;
}
.
chapter
-
tree
.
el
-
tree
-
node__content
:
hover
,
...
...
src/pages/sale/activeOrderList.vue
View file @
ae926ab5
<
template
>
<div
class=
"page-body myOrder"
>
<div
class=
"row col"
style=
"height: 40px"
>
<div
class=
"row col"
style=
"justify-content: space-between;align-items: center;margin-bottom: 10px"
>
<div>
<template
v-if=
"data&& data.ClassInfo"
>
{{
data
.
ClassInfo
.
ClassName
}}
</
template
>
</div>
<div
class=
"row"
style=
"align-items: center"
>
<span>
带班老师
</span>
<q-avatar
size=
"sm"
style=
"margin:0 5px;"
v-if=
"data.ClassInfo&&data.ClassInfo.TeacherIcon"
>
<img
:src=
"data.ClassInfo.TeacherIcon"
/>
</q-avatar>
<q-avatar
style=
"margin:0 5px;"
size=
"sm"
color=
"teal-10"
text-color=
"white"
v-else
>
<
template
v-if=
"data.ClassInfo&&data.ClassInfo.TeacherName"
>
{{
data
.
ClassInfo
.
TeacherName
.
substring
(
0
,
1
)
}}
</
template
>
</q-avatar>
<span
v-if=
"data&& data.ClassInfo"
style=
"color:#2961FE;font-weight: bold"
>
{{data.ClassInfo.TeacherName}}
</span>
</div>
<div
class=
"row col "
style=
"align-items: center;margin-bottom: 10px"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md "
label=
"返回"
@
click=
"goBack"
/>
<div
v-if=
"activeName"
>
活动名称:
{{
activeName
}}
</div>
</div>
</div>
<div
class=
"page-content"
>
<OrderItem
:dataList=
"dataList"
ref=
"orderL"
:authObj=
"authObj"
:modityOrderType=
"2"
:cancelList=
"CancelList"
<OrderItem
:dataList=
"data
.
List"
ref=
"orderL"
:authObj=
"authObj"
:modityOrderType=
"2"
:cancelList=
"CancelList"
@
success=
"refreshClassOrder"
></OrderItem>
</div>
</div>
...
...
@@ -41,8 +27,9 @@
data
()
{
return
{
data
:
{},
activeName
:
""
,
msg
:
{
Id
:
0
Activity
Id
:
0
},
//正常订单
dataList
:
[],
...
...
@@ -62,54 +49,35 @@
},
created
()
{
if
(
this
.
$route
.
query
.
Id
)
{
this
.
msg
.
Id
=
this
.
$route
.
query
.
Id
this
.
msg
.
Activity
Id
=
this
.
$route
.
query
.
Id
}
// this.getList();
if
(
this
.
$route
.
query
.
name
)
{
this
.
activeName
=
this
.
$route
.
query
.
name
}
this
.
getList
();
},
mounted
()
{
},
methods
:
{
//获取菜单分页
列表
//获取订单
列表
getList
()
{
this
.
loading
=
true
;
quertClassOrderList
(
this
.
msg
).
then
(
res
=>
{
this
.
data
=
res
.
Data
;
if
(
this
.
data
&&
this
.
data
.
OrderList
&&
this
.
data
.
OrderList
.
NorList
)
{
this
.
dataList
=
this
.
data
.
OrderList
.
NorList
;
let
OrderIds
=
[]
this
.
dataList
.
forEach
(
x
=>
{
OrderIds
.
push
(
x
.
OrderId
)
})
if
(
OrderIds
.
length
>
0
)
{
OrderIds
=
OrderIds
.
join
(
','
)
if
(
this
.
dataList
.
length
>
0
)
{
this
.
$refs
.
orderL
.
getOrderFinanceList
(
OrderIds
,
1
)
}
}
}
if
(
this
.
data
&&
this
.
data
.
OrderList
&&
this
.
data
.
OrderList
.
CancelList
)
{
this
.
CancelList
=
this
.
data
.
OrderList
.
CancelList
;
let
OrderIds
=
[]
this
.
CancelList
.
forEach
(
x
=>
{
OrderIds
.
push
(
x
.
OrderId
)
})
if
(
OrderIds
.
length
>
0
)
{
OrderIds
=
OrderIds
.
join
(
','
)
if
(
this
.
CancelList
.
length
>
0
)
{
this
.
$refs
.
orderL
.
getOrderFinanceList
(
OrderIds
,
2
)
}
}
}
this
.
loading
=
false
}).
catch
(()
=>
{
this
.
apipostDS
(
"/api/Education/GetConsultOrderStatisticsPage"
,
this
.
msg
,
(
res
)
=>
{
this
.
loading
=
false
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
data
=
res
.
data
.
data
.
pageData
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
})
},
//刷新页面
refreshClassOrder
()
{
this
.
getList
();
}
},
goBack
(){
this
.
$router
.
go
(
-
1
)
}
,
}
}
...
...
src/pages/sale/activeOrderStatistics.vue
View file @
ae926ab5
<
template
>
<div
class=
"page-body myOrder"
>
<div
style=
"width: 100%;display: flex;justify-content: space-between"
>
<span
style=
"font-size: 20px;font-weight: 400; "
>
活动报名
订单
</span>
<span
style=
"font-size: 20px;font-weight: 400; "
>
活动报名
统计
</span>
</div>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
...
...
@@ -75,14 +75,14 @@
<span
class=
"stics-name"
>
取消人数
</span>
<span>
{{data.Statistics.CancelNum}}人
</span>
</div>
<div
class=
"col stics"
>
<
!-- <
div class="col stics">
<span class="stics-name">提成金额</span>
<span>{{data.Statistics.CommissionMoney}}</span>
</div>
<div class="col stics">
<span class="stics-name">额外奖励</span>
<span>{{data.Statistics.ExtraRewardMoney}}</span>
</div>
</div>
-->
</div>
<div
class=
"row col"
style=
"justify-content: flex-end"
>
<div
class=
"row tis"
>
...
...
@@ -103,7 +103,7 @@
</div>
</div>
<div
class=
"page-content"
>
<activeOrder
:dataList=
"data.List"
:authObj=
"authObj"
@
success=
"refreshClassOrder"
:modityOrderType=
"1"
<activeOrder
:dataList=
"data.List"
:authObj=
"authObj"
@
success=
"refreshClassOrder"
:modityOrderType=
"1"
ref=
"orderL"
>
</activeOrder>
<div
class=
"row"
style=
"justify-content: flex-end;padding: 5px 20px"
>
...
...
@@ -119,14 +119,14 @@
import
{
queryEmployee
}
from
'../../api/users/user'
//获取业务员列表
import
myOrderForm
from
'../../components/sale/myOrder-form'
//
import myOrderForm from '../../components/sale/myOrder-form'
import
activeOrder
from
'../../components/sale/activeOrder-item'
export
default
{
meta
:
{
title
:
"我的活动订单"
},
components
:
{
myOrderForm
,
//
myOrderForm,
activeOrder
},
data
()
{
...
...
@@ -265,17 +265,18 @@
this
.
apipostDS
(
"/api/Education/GetConsultOrderStatisticsPage"
,
msg
,
(
res
)
=>
{
this
.
loading
=
false
if
(
res
.
data
.
resultCode
===
1
)
{
console
.
log
(
319
,
res
)
this
.
data
=
res
.
data
.
data
;
let
OrderIds
=
[]
this
.
data
.
forEach
(
x
=>
{
OrderIds
.
push
(
x
.
Id
)
})
OrderIds
=
OrderIds
.
join
(
','
)
if
(
this
.
data
.
length
>
0
)
{
this
.
$refs
.
orderL
.
getOrderFinanceList
(
OrderIds
,
1
)
}
// this.pageCount = res.data.PageCount;
this
.
data
=
res
.
data
.
data
.
pageData
;
console
.
log
(
319
,
this
.
data
)
// let OrderIds = []
// this.data.forEach(x => {
// OrderIds.push(x.Id)
// })
// OrderIds = OrderIds.join(',')
// if (this.data.length > 0) {
// this.$refs.orderL.getOrderFinanceList(OrderIds, 1)
// }
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
})
},
...
...
src/pages/sale/activityList.vue
View file @
ae926ab5
...
...
@@ -446,9 +446,12 @@ import ActiveOrderForm from '../../components/sale/activeOrder-form.vue'
},
//跳转到订单中心
goUrl
(
item
)
{
var
tempStr
=
'/sale/activeOrderList?Id='
+
item
.
Id
;
this
.
$router
.
push
({
path
:
tempStr
path
:
"/sale/activeOrderList"
,
query
:{
Id
:
item
.
Id
,
name
:
item
.
ActivityName
}
});
},
}
...
...
src/pages/sale/myActiveOrder.vue
View file @
ae926ab5
...
...
@@ -63,14 +63,14 @@
<span
class=
"stics-name"
>
取消人数
</span>
<span>
{{data.Statistics.CancelNum}}人
</span>
</div>
<div
class=
"col stics"
>
<
!-- <
div class="col stics">
<span class="stics-name">提成金额</span>
<span>{{data.Statistics.CommissionMoney}}</span>
</div>
<div class="col stics">
<span class="stics-name">额外奖励</span>
<span>{{data.Statistics.ExtraRewardMoney}}</span>
</div>
</div>
-->
</div>
<div
class=
"row col"
style=
"justify-content: flex-end"
>
<div
class=
"row tis"
>
...
...
@@ -206,9 +206,10 @@
this
.
apipostDS
(
"/api/Education/GetConsultOrderStatisticsPage"
,
msg
,
(
res
)
=>
{
this
.
loading
=
false
if
(
res
.
data
.
resultCode
===
1
)
{
console
.
log
(
319
,
res
.
data
)
this
.
data
=
res
.
data
.
pageData
;
let
OrderIds
=
[]
this
.
data
=
res
.
data
.
data
.
pageData
;
// let OrderIds = []
// this.data.forEach(x => {
// OrderIds.push(x.Id)
// })
...
...
@@ -216,7 +217,7 @@
// if (this.data.length > 0) {
// this.$refs.orderL.getOrderFinanceList(OrderIds, 1)
// }
this
.
pageCount
=
res
.
data
.
pageCount
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
})
},
...
...
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