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
507ba137
Commit
507ba137
authored
Jul 21, 2021
by
罗超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
into master
parents
40d436c6
f7bebb55
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1113 additions
and
80 deletions
+1113
-80
index.js
src/api/school/index.js
+13
-0
index.js
src/api/stuMan/index.js
+13
-0
separate-form.vue
src/components/flow/separate-form.vue
+355
-0
continueclass-form.vue
src/components/sale/continueclass-form.vue
+0
-4
orderlist.vue
src/components/sale/orderlist.vue
+16
-5
transferclass-form.vue
src/components/sale/transferclass-form.vue
+89
-59
addFinancialDocuments.vue
...ages/financial/financalDocument/addFinancialDocuments.vue
+30
-2
addReceivablesDocuments.vue
...es/financial/financalDocument/addReceivablesDocuments.vue
+30
-2
orderCompleteStatistics.vue
src/pages/financial/orderCompleteStatistics.vue
+49
-1
studentsClassfee.vue
src/pages/financial/studentsClassfee.vue
+47
-3
myOrder.vue
src/pages/sale/myOrder.vue
+1
-0
studentManage.vue
src/pages/stuMan/studentManage.vue
+451
-0
processSet.vue
src/pages/system/processSet.vue
+12
-2
changeClassManager.vue
src/pages/teacher/changeClassManager.vue
+1
-1
billquery.vue
src/pages/user/billquery.vue
+1
-1
routes.js
src/router/routes.js
+5
-0
No files found.
src/api/school/index.js
View file @
507ba137
...
...
@@ -579,3 +579,16 @@ export function SetOrderChange(data) {
});
}
/**
* 保存分拆申请
*/
export
function
SetOrderSplit
(
data
)
{
return
request
({
url
:
'/OrderChange/SetOrderSplit'
,
method
:
'post'
,
data
});
}
src/api/stuMan/index.js
0 → 100644
View file @
507ba137
import
request
from
'../../utils/request'
/**
* 获取部门分页列表
*/
export
function
getDeptPage
(
data
)
{
return
request
({
url
:
'/User/GetDeptPageList'
,
method
:
'post'
,
data
});
}
src/components/flow/separate-form.vue
0 → 100644
View file @
507ba137
<
style
>
.changeClassProcess
{
width
:
350px
;
}
.changeClassProcess
.processList
{
width
:
100%
;
height
:
auto
;
}
.changeClassProcess
.processTop
{
width
:
100%
;
height
:
54px
;
background-color
:
#F1F1F1
;
color
:
#000000
;
text-align
:
center
;
line-height
:
54px
;
border-radius
:
2px
;
cursor
:
pointer
;
position
:
relative
;
}
.changeClassProcess
.processLine
{
width
:
100%
;
height
:
54px
;
background-color
:
#fff
;
color
:
#bbb6b6
;
text-align
:
center
;
line-height
:
54px
;
}
.changeClassProcess
.processLine
i
{
font-size
:
25px
;
font-weight
:
bold
;
}
.changeClassProcess
.otherList
{
background-color
:
#2961FE
!important
;
color
:
#fff
;
font-weight
:
bold
;
}
.changeClassProcess
.process_TwoList
{
display
:
flex
;
background-color
:
#2961FE
!important
;
color
:
#fff
;
font-weight
:
bold
;
align-items
:
center
;
justify-content
:
center
;
}
.changeClassProcess
.process_He
{
width
:
36px
;
height
:
36px
;
background-color
:
#3FC4FF
;
text-align
:
center
;
line-height
:
36px
;
color
:
#fff
;
border-radius
:
50%
;
}
.changeClassProcess
.process_Left
{
width
:
40%
;
height
:
100%
;
text-align
:
right
;
}
.changeClassProcess
.process_center
{
width
:
20%
;
height
:
100%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.changeClassProcess
.process_Right
{
width
:
40%
;
height
:
100%
;
text-align
:
left
;
}
.changeClassProcess
.process_OR
{
background-color
:
#F28C1D
;
}
.changeClassProcess
.addProcessBtn
{
width
:
100%
;
height
:
45px
;
text-align
:
center
;
line-height
:
45px
;
color
:
#2961FE
;
border
:
1px
dashed
#2961FE
;
border-radius
:
2px
;
cursor
:
pointer
;
}
.changeClassProcess
.process_BtnList
{
margin-top
:
30px
;
width
:
100%
;
display
:
flex
;
justify-content
:
center
;
}
.changeClassProcess
.process_BtnOne
{
width
:
90px
;
height
:
38px
;
text-align
:
center
;
line-height
:
38px
;
border-radius
:
2px
;
border
:
1px
solid
#A1AAB2
;
color
:
#000000
;
cursor
:
pointer
;
margin-right
:
50px
;
}
.changeClassProcess
.SetShouSun
{
display
:
inline-block
;
border-radius
:
2px
;
background-color
:
#8175FB
;
color
:
#fff
;
position
:
absolute
;
right
:
10px
;
width
:
60px
;
height
:
27px
;
left
:
0
;
top
:
0
;
line-height
:
27px
;
font-size
:
13px
;
}
.changeClassProcess
.operationDiv
{
position
:
absolute
;
right
:
0
;
top
:
0
;
height
:
30px
;
line-height
:
30px
;
padding-right
:
10px
;
vertical-align
:
top
;
}
.changeClassProcess
.operationDiv
i
:first-child
{
font-size
:
13px
;
}
.changeClassProcess
.operationDiv
i
:hover
{
color
:
red
;
}
.changeClassProcess
.justTwoClass
{
margin-left
:
8px
;
}
</
style
>
<
template
>
<div
class=
"changeClassProcess"
>
<div
class=
"processList"
>
<div
class=
"processTop"
>
发起人
</div>
<div
class=
"processLine"
>
<i
class=
"iconfont icon-down"
></i>
</div>
</div>
<template
v-for=
"(item,index) in flowObj.FlowNodeList"
>
<div
class=
"processList"
@
click=
"getItem(index)"
>
<template
v-if=
"item.FlowAduitList&&item.FlowAduitList.length==1"
>
<div
class=
"processTop otherList"
>
{{
item
.
FlowAduitList
[
0
].
AduitName
}}
<template
v-if=
"item.FlowAduitList&&item.FlowAduitList.length>0 && item.FlowAduitList[0].IsSpecNode==1"
>
<span
class=
"SetShouSun"
>
设定收损
</span>
</
template
>
<div
class=
"operationDiv"
>
<i
class=
"iconfont icon-shanchu"
style=
"position:relative;top:-2px;"
@
click
.
stop=
"DeleteNode(index)"
></i>
<i
style=
"margin:0 8px;"
class=
"iconfont icon-shangyi2"
v-if=
"index!=0"
@
click
.
stop=
"moveDown(index,0)"
></i>
<i
class=
"iconfont icon-xiayi"
:class=
"{'justTwoClass':index==0}"
@
click
.
stop=
"moveDown(index,1)"
v-if=
"index!=flowObj.FlowNodeList.length-1"
></i>
</div>
</div>
<div
class=
"processLine"
v-if=
"index!=flowObj.FlowNodeList.length-1"
>
<i
class=
"iconfont icon-down"
></i>
</div>
</template>
<
template
v-else
>
<div
class=
"processTop process_TwoList"
>
<div
class=
"process_Left"
>
{{
item
.
FlowAduitList
[
0
].
AduitName
}}
</div>
<div
class=
"process_center"
>
<template
v-if=
"item.FlowAduitList[0].AuditWay==2"
>
<div
class=
"process_He"
>
和
</div>
</
template
>
<
template
v-if=
"item.FlowAduitList[0].AuditWay==3"
>
<div
class=
"process_He process_OR"
>
或者
</div>
</
template
>
</div>
<div
class=
"process_Right"
>
<
template
v-for=
"(subItem,subIndex) in item.FlowAduitList"
v-if=
"subIndex>0"
>
{{
subItem
.
AduitName
}}
</
template
>
</div>
<
template
v-if=
"item.FlowAduitList&&item.FlowAduitList.length>0 && item.FlowAduitList[0].IsSpecNode==1"
>
<span
class=
"SetShouSun"
>
设定收损
</span>
</
template
>
<div
class=
"operationDiv"
>
<i
class=
"iconfont icon-shanchu"
style=
"position:relative;top:-2px;"
@
click
.
stop=
"DeleteNode(index)"
></i>
<i
style=
"margin:0 8px;"
class=
"iconfont icon-shangyi2"
v-if=
"index!=0"
@
click
.
stop=
"moveDown(index,0)"
></i>
<i
class=
"iconfont icon-xiayi"
:class=
"{'justTwoClass':index==0}"
@
click
.
stop=
"moveDown(index,1)"
v-if=
"index!=flowObj.FlowNodeList.length-1"
></i>
</div>
</div>
<div
class=
"processLine"
v-if=
"index!=flowObj.FlowNodeList.length-1"
>
<i
class=
"iconfont icon-down"
></i>
</div>
</template>
</div>
</template>
<br
/>
<div
class=
"addProcessBtn"
@
click=
"AddNode"
>
新增节点
</div>
<div
class=
"process_BtnList"
>
<q-btn
label=
"保存"
color=
"accent q-px-md"
style=
"font-weight:400 !important"
@
click=
"setBackClassFlow"
/>
</div>
<process-form
v-if=
"isShowProcess"
:save-obj=
"processObj"
:NodeIndex=
"ChooseNodeIndex"
@
close=
"closeProcessForm"
@
success=
"refreshPage"
:authObj=
"showObj"
>
</process-form>
</div>
</template>
<
script
>
import
processForm
from
'../../components/flow/process-form'
;
import
{
queryBackClassFlow
,
saveBackClassFlow
}
from
'../../api/system/index'
export
default
{
meta
:
{
title
:
""
},
components
:
{
processForm
},
data
()
{
return
{
msg
:
{
FlowId
:
6
},
isShowProcess
:
false
,
//显示旁边弹窗
processObj
:
{},
//传递子组件
flowObj
:
{
FlowId
:
6
,
FlowName
:
"分拆"
,
FlowNodeList
:
[],
//审核节点列表
},
//显示对象
showObj
:
{
isShowShouSun
:
0
,
//不显示收损
},
ChooseNodeIndex
:
0
,
}
},
created
()
{},
mounted
()
{
this
.
getBackClassFlow
();
},
methods
:
{
//新增节点
AddNode
()
{
this
.
flowObj
.
FlowNodeList
.
push
({
FlowId
:
0
,
NodeId
:
0
,
NodeName
:
"新增节点"
,
SortNum
:
0
,
FlowAduitList
:
[{
AduitName
:
"新增节点"
,
AuditType
:
2
,
AuditWay
:
2
,
CheckId
:
0
,
FlowId
:
0
,
IsSpecNode
:
0
,
NodeId
:
8
,
PostType
:
0
,
UserId
:
0
,
}]
});
},
//删除节点
DeleteNode
(
index
)
{
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'是否确定删除该流程'
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
this
.
flowObj
.
FlowNodeList
.
splice
(
index
,
1
);
}).
onCancel
(()
=>
{
});
},
getBackClassFlow
()
{
queryBackClassFlow
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
&&
res
.
Data
)
{
this
.
flowObj
=
res
.
Data
;
}
})
},
//点开旁边
getItem
(
nodeIndex
)
{
this
.
processObj
=
this
.
flowObj
;
this
.
ChooseNodeIndex
=
nodeIndex
;
this
.
isShowProcess
=
true
;
},
//关闭
closeProcessForm
()
{
this
.
isShowProcess
=
false
},
//成功刷新
refreshPage
()
{
this
.
isShowProcess
=
false
;
this
.
getBackClassFlow
();
},
//保存退课流程
setBackClassFlow
()
{
saveBackClassFlow
(
this
.
flowObj
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'操作成功'
,
position
:
'top'
})
this
.
refreshPage
();
}
})
},
//下移下移
moveDown
(
index
,
IsUp
)
{
var
currentItem
=
this
.
flowObj
.
FlowNodeList
[
index
];
if
(
IsUp
==
0
)
{
if
(
index
>
0
)
{
var
upItem
=
this
.
flowObj
.
FlowNodeList
[
index
-
1
];
this
.
$set
(
this
.
flowObj
.
FlowNodeList
,
index
-
1
,
currentItem
);
this
.
$set
(
this
.
flowObj
.
FlowNodeList
,
index
,
upItem
);
}
}
else
{
if
(
index
!=
this
.
flowObj
.
FlowNodeList
.
length
-
1
)
{
var
downItem
=
this
.
flowObj
.
FlowNodeList
[
index
+
1
];
this
.
$set
(
this
.
flowObj
.
FlowNodeList
,
index
+
1
,
currentItem
);
this
.
$set
(
this
.
flowObj
.
FlowNodeList
,
index
,
downItem
);
}
}
}
}
}
</
script
>
src/components/sale/continueclass-form.vue
View file @
507ba137
...
...
@@ -452,10 +452,6 @@
if
(
!
tempArray
)
{
tempArray
=
[];
}
tempArray
.
unshift
({
SId
:
0
,
SName
:
"不限"
})
this
.
schoolList
=
tempArray
;
}
})
...
...
src/components/sale/orderlist.vue
View file @
507ba137
...
...
@@ -297,9 +297,14 @@
<q-item-label
@
click=
"showContinueClass(item)"
>
续课
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
v-close-popup
v-if=
"AuthorityObj.isShowTransOrder"
>
<q-item
clickable
v-close-popup
v-close-popup
v-if=
"AuthorityObj.isShowTrans
Class
Order"
>
<q-item-section>
<q-item-label
@
click=
"transferClass(item)"
>
转班
</q-item-label>
<q-item-label
@
click=
"transferClass(item,1)"
>
转班
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
v-if=
"AuthorityObj.isShowSeparater"
>
<q-item-section>
<q-item-label
@
click=
"transferClass(item,2)"
>
分拆
</q-item-label>
</q-item-section>
</q-item>
</q-list>
...
...
@@ -812,7 +817,7 @@
@
success=
"refreshOrder"
></continueclass-form>
<!-- 转班申请 -->
<transferclass-form
v-if=
"isShowTransferClass"
:save-obj=
"orderObj"
@
close=
"closeTransferClassForm"
<transferclass-form
v-if=
"isShowTransferClass"
:save-obj=
"orderObj"
:ChangeType=
"ChangeType"
@
close=
"closeTransferClassForm"
@
success=
"refreshOrder"
></transferclass-form>
<!-- 查看报价单 -->
...
...
@@ -936,6 +941,7 @@
isShowContract
:
true
,
//是否显示合同
isShowEdit
:
true
,
//是否显示修改订单按钮
isShowTransClassOrder
:
false
,
//是否显示转班按钮
isShowSeparater
:
false
//是否显示分拆
},
isShowEduForm
:
false
,
//是否显示新增修改合同弹窗
...
...
@@ -947,7 +953,8 @@
isEditOrder
:
false
,
//是否有【总经理】修改订单但权限
newModityOrderType
:
0
,
isChaBan
:
0
,
//是否插班(0-正常报入,1-插班报入)
isShowTransferClass
:
false
//是否显示转班
isShowTransferClass
:
false
,
//是否显示转班
ChangeType
:
1
//1-转班 2-分拆
}
},
created
()
{
...
...
@@ -1038,6 +1045,9 @@
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
;
}
}
},
//关闭报价单
...
...
@@ -1090,8 +1100,9 @@
},
//转班
transferClass
(
item
)
{
transferClass
(
item
,
type
)
{
this
.
orderObj
=
item
;
this
.
ChangeType
=
type
;
this
.
isShowTransferClass
=
true
;
},
...
...
src/components/sale/transferclass-form.vue
View file @
507ba137
...
...
@@ -110,7 +110,8 @@
<template
v-if=
"isShowTuike"
>
<q-card-section>
<div
class=
"text-h6"
>
转班申请
<span
class=
"Title_remark"
>
注:找不到学员?请确认学员是否已退课或已续班
</span>
{{
transMsg
.
ChangeType
==
1
?
'转班申请'
:
'分拆'
}}
<span
class=
"Title_remark"
>
注:找不到学员?请确认学员是否已退课或已续班
</span>
</div>
</q-card-section>
<div
style=
"margin:20px;border-bottom:1px solid #E2E2E2"
>
...
...
@@ -124,9 +125,13 @@
</span>
<span
style=
"width:10%"
>
{{item.GuestStateStr}}
</span>
<span
style=
"width:20%;"
class=
"guest_Status"
>
<span
v-if=
"item.GuestState==1"
@
click=
"clickItem(item)"
>
转班
</span>
<span
v-if=
"item.GuestState==1"
@
click=
"clickItem(item)"
>
{{transMsg.ChangeType==1?'转班':'分拆'}}
</span>
<
template
v-if=
"chooseItem&&chooseItem.Id==item.Id"
>
<span
style=
"margin-left:10px;"
@
click=
"cancelApply"
>
取消转班
</span>
<span
style=
"margin-left:10px;"
@
click=
"cancelApply"
>
取消
{{
transMsg
.
ChangeType
==
1
?
'转班'
:
'分拆'
}}
</span>
</
template
>
</span>
</div>
...
...
@@ -162,33 +167,35 @@
<td></td>
</tr>
</table>
<div
class=
"row"
style=
"margin-top:20px;"
>
<q-input
filled
v-model=
"transMsg.OutTime"
class=
"col-6 q-pr-lg"
mask=
"date"
label=
"转出日期"
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"transMsg.OutTime"
:options=
"optionsFn2"
@
input=
"getOutTime"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
<q-input
filled
v-model=
"transMsg.EffectiveDate"
class=
"col-6"
mask=
"date"
label=
"生效日期"
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy2"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"transMsg.EffectiveDate"
:options=
"optionsFn"
@
input=
"checkEffectDate()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<div
class=
"row"
style=
"margin-top:20px;"
>
<
template
v-if=
"transMsg.ChangeType==1"
>
<q-input
filled
v-model=
"transMsg.OutTime"
class=
"col-6 q-pr-lg"
mask=
"date"
label=
"转出日期"
>
<template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"transMsg.OutTime"
:options=
"optionsFn2"
@
input=
"getOutTime"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</template>
<q-input
filled
v-model=
"transMsg.EffectiveDate"
class=
"col-6"
mask=
"date"
label=
"生效日期"
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy2"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"transMsg.EffectiveDate"
:options=
"optionsFn"
@
input=
"checkEffectDate()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"transMsg.Remarks"
style=
"margin-top: 20px"
type=
"textarea"
class=
"col-12"
label=
"转班原因
"
/>
class=
"col-12"
:label=
"transMsg.ChangeType==1?'转班原因':'分拆原因'
"
/>
<q-separator
/>
</div>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
style=
"font-weight:400 !important"
@
click=
"closeContinueClassForm"
/>
<q-btn
label=
"确认转班
"
color=
"accent"
class=
"q-px-md"
style=
"font-weight:400 !important"
<q-btn
:label=
"transMsg.ChangeType==1?'确认转班':'确认分拆'
"
color=
"accent"
class=
"q-px-md"
style=
"font-weight:400 !important"
@
click=
"setRenewOrder"
/>
</q-card-actions>
</template>
...
...
@@ -251,7 +258,7 @@
</div>
<div
class=
"continu_Div"
style=
"width:20%"
>
<div>
价格
</div>
<div
style=
"margin:5px 0;"
>
续费价格:{{cItem.
SellPrice}}
</div>
<div
style=
"margin:5px 0;"
>
售价:{{cItem.New
SellPrice}}
</div>
<
template
v-if=
"cItem.ClassStepPriceList&&cItem.ClassStepPriceList.length>0"
>
更多优惠价格
<span
class=
"iconfont icon-xiangxia"
style=
"color: #2961FE;font-size: 10px"
></span>
...
...
@@ -292,7 +299,8 @@
<
script
>
import
{
getSchoolDropdown
,
SetOrderChange
SetOrderChange
,
SetOrderSplit
}
from
'../../api/school/index'
import
{
GetClassTypeList
...
...
@@ -312,6 +320,10 @@
type
:
Object
,
default
:
null
,
},
ChangeType
:
{
type
:
Number
,
default
:
null
}
},
data
()
{
return
{
...
...
@@ -367,6 +379,7 @@
this
.
continueClassMsg
.
OrderId
=
this
.
saveObj
.
OrderId
;
this
.
continueClassMsg
.
ClassId
=
this
.
saveObj
.
ClassId
;
this
.
classMsg
.
ClassId
=
this
.
saveObj
.
ClassId
;
this
.
transMsg
.
ChangeType
=
this
.
ChangeType
;
this
.
getSchool
();
this
.
GetClassTypeList
();
...
...
@@ -485,13 +498,15 @@
})
return
;
}
if
(
this
.
transMsg
.
OutTime
==
''
)
{
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请选择转出日期`
})
return
;
if
(
this
.
transMsg
.
ChangeType
==
1
){
if
(
this
.
transMsg
.
OutTime
==
''
)
{
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请选择转出日期`
})
return
;
}
}
if
(
this
.
transMsg
.
EffectiveDate
==
''
)
{
this
.
$q
.
notify
({
...
...
@@ -501,20 +516,37 @@
})
return
;
}
SetOrderChange
(
this
.
transMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'转班申请成功!'
,
position
:
'top'
})
//调用父页面成功方法
this
.
$emit
(
'success'
);
this
.
IsShowContinueClassDialog
=
false
}
})
if
(
this
.
transMsg
.
ChangeType
==
1
){
SetOrderChange
(
this
.
transMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'保存成功!'
,
position
:
'top'
})
//调用父页面成功方法
this
.
$emit
(
'success'
);
this
.
IsShowContinueClassDialog
=
false
}
})
}
else
{
SetOrderSplit
(
this
.
transMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'保存成功!'
,
position
:
'top'
})
//调用父页面成功方法
this
.
$emit
(
'success'
);
this
.
IsShowContinueClassDialog
=
false
}
})
}
},
//获取校区列表
getSchool
()
{
...
...
@@ -524,10 +556,6 @@
if
(
!
tempArray
)
{
tempArray
=
[];
}
tempArray
.
unshift
({
SId
:
0
,
SName
:
"不限"
})
this
.
schoolList
=
tempArray
;
}
})
...
...
@@ -581,13 +609,15 @@
this
.
transMsg
.
EffectiveDate
=
''
},
checkEffectDate
(){
if
(
this
.
transMsg
.
OutTime
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请先选择转出日期`
})
this
.
transMsg
.
EffectiveDate
=
''
if
(
this
.
transMsg
.
ChangeType
==
1
){
if
(
this
.
transMsg
.
OutTime
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请先选择转出日期`
})
this
.
transMsg
.
EffectiveDate
=
''
}
}
this
.
$refs
.
qDateProxy2
.
hide
()
}
...
...
src/pages/financial/financalDocument/addFinancialDocuments.vue
View file @
507ba137
...
...
@@ -686,7 +686,7 @@
<p>
关联单号:
<span
style=
"border-bottom: 1px solid #111;height: 34px;line-height: 34px;"
>
<
el-input
type=
"text"
v-model=
'msg.RelevanceFrId'
placeholder=
"如:123,234"
onkeyup=
"this.value=this.value.replace(/[^0-9\,]/
,'')"
/>
<
input
type=
"text"
v-model=
'msg.RelevanceFrId'
placeholder=
"如:123,234"
onkeyup=
"this.value=this.value.replace(/[^\d\,]/g
,'')"
/>
</span>
</p>
<
template
v-if=
"GetDetail.FrID!=0"
>
...
...
@@ -827,6 +827,29 @@
<el-button
size=
"small"
type=
"danger"
@
click=
"maxmoneyTips=false"
>
确 定
</el-button>
</span>
</el-dialog>
<q-dialog
v-model=
"costmode"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 700px;max-width:700px;"
>
<q-card-section>
<div
class=
"text-h6"
>
为规范财务管理工作,关于财务单据制单和报销,特作以下温馨提示
</div>
</q-card-section>
<q-card-section>
<div
class=
"text-"
>
1.正确选取财务单据的归属校区和部门。
<br>
2.与班级或活动相关的收支单据,应相关联。
<br>
3.财务单据请上传相关原始附件。支出单据请提供合法票据(发票),凭票报销。如无法提供发票请特殊备注说明原因并单独制单。办公用品请附入库清单。
<br>
4.支出单尽量选择公对公走账,如必须公对私请特殊备注说明原由。
<br>
5.支出单请详细备注:使用校区及用途。
<br>
6.原则上凭票报销,因特殊情况如发票后补,请及时补回发票,如跨月才提供发票应走借款程序,做特殊处理。
<br>
7.大于5000元以上的支出须提供合同,并上传至附件。
</div>
</q-card-section>
<q-card-actions
align=
"right"
>
<q-btn
color=
"primary"
label=
"我知道了"
@
click=
"costmode = false"
/>
</q-card-actions>
</q-card>
</q-dialog>
</div>
</template>
<
script
>
...
...
@@ -970,7 +993,8 @@
rowsPerPage
:
12
,
SName
:
""
,
Status
:
'-1'
}
},
costmode
:
true
,
}
},
methods
:
{
...
...
@@ -2073,6 +2097,10 @@
if
(
this
.
$route
.
query
.
edit
)
{
// 编辑
this
.
msg
.
FrID
=
this
.
$route
.
query
.
FrID
;
console
.
log
(
this
.
$route
.
query
.
FrID
,
'财务单据id'
)
if
(
this
.
msg
.
FrID
>
0
){
this
.
costmode
=
false
}
this
.
Financial_post_Get
(
this
.
$route
.
query
.
FrID
,
0
);
}
else
{
if
(
this
.
$route
.
query
.
czmsg
)
{
...
...
src/pages/financial/financalDocument/addReceivablesDocuments.vue
View file @
507ba137
...
...
@@ -588,7 +588,7 @@
<p>
关联单号:
<span
style=
"border-bottom: 1px solid #111;height: 34px;line-height: 34px;"
>
<
el-input
type=
"text"
v-model=
'msg.RelevanceFrId'
placeholder=
"如:123,234"
onkeyup=
"this.value=this.value.replace(/[^0-9\,]/
,'')"
/>
<
input
type=
"text"
v-model=
'msg.RelevanceFrId'
placeholder=
"如:123,234"
onkeyup=
"this.value=this.value.replace(/[^\d\,]/g
,'')"
/>
</span>
</p>
</div>
...
...
@@ -672,6 +672,29 @@
</div>
</div>
</div>
<q-dialog
v-model=
"costmode"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 700px;max-width:700px;"
>
<q-card-section>
<div
class=
"text-h6"
>
为规范财务管理工作,关于财务单据制单和报销,特作以下温馨提示
</div>
</q-card-section>
<q-card-section>
<div
class=
"text-"
>
1.正确选取财务单据的归属校区和部门。
<br>
2.与班级或活动相关的收支单据,应相关联。
<br>
3.财务单据请上传相关原始附件。支出单据请提供合法票据(发票),凭票报销。如无法提供发票请特殊备注说明原因并单独制单。办公用品请附入库清单。
<br>
4.支出单尽量选择公对公走账,如必须公对私请特殊备注说明原由。
<br>
5.支出单请详细备注:使用校区及用途。
<br>
6.原则上凭票报销,因特殊情况如发票后补,请及时补回发票,如跨月才提供发票应走借款程序,做特殊处理。
<br>
7.大于5000元以上的支出须提供合同,并上传至附件。
</div>
</q-card-section>
<q-card-actions
align=
"right"
>
<q-btn
color=
"primary"
label=
"我知道了"
@
click=
"costmode = false"
/>
</q-card-actions>
</q-card>
</q-dialog>
</div>
</template>
<
script
>
...
...
@@ -830,7 +853,9 @@
rowsPerPage
:
12
,
SName
:
""
,
Status
:
'-1'
}
},
costmode
:
true
,
}
},
methods
:
{
...
...
@@ -1855,6 +1880,9 @@
if
(
this
.
$route
.
query
.
edit
)
{
this
.
edit
=
this
.
$route
.
query
.
edit
;
this
.
msg
.
FrID
=
this
.
$route
.
query
.
FrID
;
if
(
this
.
msg
.
FrID
>
0
){
this
.
costmode
=
false
}
this
.
Financial_post_Get
(
parseInt
(
this
.
$route
.
query
.
FrID
),
0
);
this
.
currentType
=
1
this
.
currentId
=
this
.
$route
.
query
.
FrID
...
...
src/pages/financial/orderCompleteStatistics.vue
View file @
507ba137
...
...
@@ -222,7 +222,55 @@
<template
v-for=
"(item,index) in DataList"
v-loading=
"loading"
>
<tr>
<!-- -合同信息-- -->
<td
@
click=
"goUrl3('/sale/orderStatistics',item.OrderId)"
><span
style=
"cursor: pointer;text-decoration: underline;"
>
{{
item
.
OrderId
}}
</span></td>
<td
@
click=
"goUrl3('/sale/orderStatistics',item.OrderId)"
>
<template
v-if=
"item.JoinType==3"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"续费订单"
placement=
"top-start"
>
<span
style=
"cursor: pointer;text-decoration: underline;color:red"
>
{{
item
.
OrderId
}}
</span>
</el-tooltip>
</
template
>
<
template
v-else-if=
"item.TargetJoinType==3"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"已续费"
placement=
"top-start"
>
<span
style=
"cursor: pointer;text-decoration: underline;color:green"
>
{{
item
.
OrderId
}}
</span>
</el-tooltip>
</
template
>
<
template
v-else-if=
"item.TargetJoinType==4"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"`已转班【$
{item.TargetClassName}】,关联订单号${item.TargetOrderId}`" placement="top-start">
<span
style=
"cursor: pointer;text-decoration: underline;color:orange"
>
{{
item
.
OrderId
}}
</span>
</el-tooltip>
</
template
>
<
template
v-else-if=
"item.TargetJoinType==1"
>
<template
v-if=
"item.JoinType==3"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"`原订单$
{item.SourceOrderId}`" placement="top-start">
<span
style=
"cursor: pointer;text-decoration: underline;color:blue"
>
{{
item
.
OrderId
}}
</span>
</el-tooltip>
</
template
>
<
template
v-else-if=
"item.JoinType==4"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"`从【$
{item.SourceClassName}】转入,关联订单号${item.SourceOrderId}`" placement="top-start">
<span
style=
"cursor: pointer;text-decoration: underline;color:blue"
>
{{
item
.
OrderId
}}
</span>
</el-tooltip>
</
template
>
<
template
v-else
>
<span
style=
"cursor: pointer;text-decoration: underline;"
>
{{
item
.
OrderId
}}
</span>
</
template
>
</template>
<
template
v-else
>
<span
style=
"cursor: pointer;text-decoration: underline;"
>
{{
item
.
OrderId
}}
</span>
</
template
>
</td>
<td>
{{item.CreateTime}}
</td>
<td
@
click=
"goUrl('/sale/contractManage',item.ContractNo)"
><span
style=
"cursor: pointer;text-decoration: underline;"
>
{{item.ContractNo}}
</span></td>
<td
@
click=
"goUrl('/course/course',item.CourseName)"
><span
style=
"cursor: pointer;text-decoration: underline;"
>
{{item.CourseName}}
</span></td>
...
...
src/pages/financial/studentsClassfee.vue
View file @
507ba137
...
...
@@ -130,9 +130,53 @@
:header-cell-style=
"
{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
<el-table-column
prop=
"OrderId"
label=
"订单号"
width=
'90'
>
<template
slot-scope=
"scope"
>
<div
style=
"text-decoration: underline;cursor: pointer;"
@
click=
'gobaoming(scope.row.OrderId)'
>
{{
scope
.
row
.
OrderId
}}
</div>
<template
v-if=
"scope.row.JoinType==3"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"续费订单"
placement=
"top-start"
>
<div
style=
"text-decoration: underline;cursor: pointer;color:red"
@
click=
'gobaoming(scope.row.OrderId)'
>
{{
scope
.
row
.
OrderId
}}
</div>
</el-tooltip>
</
template
>
<
template
v-else-if=
"scope.row.TargetJoinType==3"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"已续费"
placement=
"top-start"
>
<div
style=
"text-decoration: underline;cursor: pointer;color:green"
@
click=
'gobaoming(scope.row.OrderId)'
>
{{
scope
.
row
.
OrderId
}}
</div>
</el-tooltip>
</
template
>
<
template
v-else-if=
"scope.row.TargetJoinType==4"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"`已转班【$
{scope.row.TargetClassName}】,关联订单号${scope.row.TargetOrderId}`" placement="top-start">
<div
style=
"text-decoration: underline;cursor: pointer;color:orange"
@
click=
'gobaoming(scope.row.OrderId)'
>
{{
scope
.
row
.
OrderId
}}
</div>
</el-tooltip>
</
template
>
<
template
v-else-if=
"scope.row.TargetJoinType==1"
>
<template
v-if=
"scope.row.JoinType==3"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"`原订单$
{scope.row.SourceOrderId}`" placement="top-start">
<div
style=
"cursor: pointer;text-decoration: underline;color:blue"
@
click=
'gobaoming(scope.row.OrderId)'
>
{{
scope
.
row
.
OrderId
}}
</div>
</el-tooltip>
</
template
>
<
template
v-else-if=
"scope.row.JoinType==4"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"`从【$
{scope.row.SourceClassName}】转入,关联订单号${scope.row.SourceOrderId}`" placement="top-start">
<div
style=
"cursor: pointer;text-decoration: underline;color:blue"
@
click=
'gobaoming(scope.row.OrderId)'
>
{{
scope
.
row
.
OrderId
}}
</div>
</el-tooltip>
</
template
>
<
template
v-else
>
<div
style=
"cursor: pointer;text-decoration: underline;"
@
click=
'gobaoming(scope.row.OrderId)'
>
{{
scope
.
row
.
OrderId
}}
</div>
</
template
>
</template>
<
template
v-else
>
<div
style=
"cursor: pointer;text-decoration: underline;"
@
click=
'gobaoming(scope.row.OrderId)'
>
{{
scope
.
row
.
OrderId
}}
</div>
</
template
>
</template>
</el-table-column>
<el-table-column
prop=
"ContractNo"
width=
'150'
label=
"合同号"
></el-table-column>
...
...
src/pages/sale/myOrder.vue
View file @
507ba137
...
...
@@ -170,6 +170,7 @@
isShowBackClass
:
true
,
//显示退课按钮
isShowRenewClass
:
true
,
//显示续课按钮
isShowTransClassOrder
:
true
,
//现在转班按钮
isShowSeparater
:
true
//显示分拆按钮
}
}
},
...
...
src/pages/stuMan/studentManage.vue
0 → 100644
View file @
507ba137
This diff is collapsed.
Click to expand it.
src/pages/system/processSet.vue
View file @
507ba137
...
...
@@ -23,10 +23,14 @@
<!-- 转班流程 -->
<transfer-form></transfer-form>
</
template
>
<
template
v-if=
"tabCheck=='5'"
>
<
template
v-if=
"tabCheck=='5'"
>
<!-- 临时上课邀请流程 -->
<temporaryClass-form></temporaryClass-form>
</
template
>
<
template
v-if=
"tabCheck=='6'"
>
<!-- 分拆 -->
<separate-form></separate-form>
</
template
>
</div>
</div>
</template>
...
...
@@ -36,6 +40,7 @@
import
stopclassflowForm
from
'../../components/flow/stopclassflow-form'
;
import
transferForm
from
'../../components/flow/transfer-form'
;
import
temporaryClassForm
from
'../../components/flow/temporaryClass-form'
;
import
separateForm
from
'../../components/flow/separate-form'
export
default
{
meta
:
{
title
:
"流程设置"
...
...
@@ -45,7 +50,8 @@
changeclassflowForm
,
stopclassflowForm
,
transferForm
,
temporaryClassForm
temporaryClassForm
,
separateForm
},
data
()
{
return
{
...
...
@@ -68,6 +74,10 @@
{
name
:
"5"
,
label
:
"临时上课邀请流程"
},
{
name
:
"6"
,
label
:
"分拆"
}
],
tabCheck
:
'1'
,
...
...
src/pages/teacher/changeClassManager.vue
View file @
507ba137
...
...
@@ -297,7 +297,7 @@
this
.
isShowTemporaryClass
=
true
;
}
//转班
else
if
(
item
.
ReceiptType
==
5
){
else
if
(
item
.
ReceiptType
==
5
||
item
.
ReceiptType
==
6
){
this
.
isShowClassTrans
=
true
;
}
this
.
showType
=
type
;
...
...
src/pages/user/billquery.vue
View file @
507ba137
...
...
@@ -341,7 +341,7 @@
this
.
isShowBackBillForm
=
true
;
}
//转班
else
if
(
item
.
ReceiptType
==
5
){
else
if
(
item
.
ReceiptType
==
5
||
item
.
ReceiptType
==
6
){
this
.
isShowTransForm
=
true
;
}
//停课
...
...
src/router/routes.js
View file @
507ba137
...
...
@@ -1042,6 +1042,11 @@ const routes = [{
component
:
()
=>
import
(
"pages/stuMan/classRecord"
)
},
{
path
:
"/stuMan/studentManage"
,
//学管 学员管理
component
:
()
=>
import
(
"pages/stuMan/studentManage"
)
},
],
},
...
...
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