Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mes-ui
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
周远喜
mes-ui
Commits
4c9c39af
Commit
4c9c39af
authored
Nov 09, 2020
by
周远喜
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://git.mes123.com/zhouyx/mes-ui
parents
44632f2d
b61860d7
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
3585 additions
and
3825 deletions
+3585
-3825
base.less
assets/css/base.less
+24
-4
productTree.vue
components/page/productTree.vue
+154
-148
index.vue
pages/handle/examine1/index.vue
+3
-0
index.vue
pages/handle/examine10/index.vue
+241
-260
index.vue
pages/handle/examine11/index.vue
+241
-260
index.vue
pages/handle/examine12/index.vue
+241
-260
index.vue
pages/handle/examine13/index.vue
+243
-262
index.vue
pages/handle/examine14/index.vue
+243
-262
index.vue
pages/handle/examine2/index.vue
+236
-270
index.vue
pages/handle/examine3/index.vue
+235
-269
index.vue
pages/handle/examine4/index.vue
+225
-246
index.vue
pages/handle/examine6/index.vue
+246
-275
index.vue
pages/handle/examine7/index.vue
+422
-422
index.vue
pages/handle/examine8/index.vue
+385
-429
index.vue
pages/handle/examine9/index.vue
+239
-258
process.vue
pages/handle/process.vue
+185
-182
index.vue
pages/mesPlan/index.vue
+9
-2
split.vue
pages/mesPlan/split.vue
+13
-16
No files found.
assets/css/base.less
View file @
4c9c39af
...
...
@@ -403,10 +403,31 @@ div::-webkit-scrollbar-corner {
.pt15 {
padding-top: 15px
}
.pr10 {
padding-right: 10px;
}
.pr20 {
padding-right: 20px;
}
.pr30 {
padding-right: 30px;
}
.pr50 {
padding-right: 50px;
}
.pr80 {
padding-right: 80px;
}
.pr100 {
padding-right: 100px;
}
.pr200 {
padding-right: 200px;
}
.pr240 {
padding-right: 240px;
}
.bnone {
border: none;
...
...
@@ -996,10 +1017,9 @@ textarea::-webkit-input-placeholder {
display:block;
line-height:30px;
padding:5px 10px;
background:#f5f6fa;
border-bottom:solid 1px #ccc;
border-left:solid 1px #ccc;
border-right:solid 1px #ccc
border-bottom: #ccc solid 1px;
border-right: #ccc solid 1px;
border-left: #ccc solid 1px;
}
.cellInfoTitle {
padding: 0 10px;
...
...
components/page/productTree.vue
View file @
4c9c39af
<
template
>
<div
class=
"flex fd tree-menu"
>
<div
class=
"flex fd tree-menu"
>
<h3>
产品结构
<div
class=
"fr mr10 mt10"
>
<ButtonGroup
class=
"fr"
size=
"small"
>
<Button
:icon=
"expand ? 'md-arrow-dropright' : 'md-arrow-dropdown'"
@
click=
"toggle"
title=
"展开/合并"
></Button>
<Button
icon=
"md-refresh"
title=
"刷新"
@
click=
"loadTree"
></Button>
<Button
icon=
"md-rewind"
title=
"收起"
@
click=
"hide"
></Button>
</ButtonGroup>
</div>
产品结构
<div
class=
"fr mr10 mt10"
>
<ButtonGroup
class=
"fr"
size=
"small"
>
<Button
:icon=
"expand ? 'md-arrow-dropright' : 'md-arrow-dropdown'"
@
click=
"toggle"
title=
"展开/合并"
></Button>
<Button
icon=
"md-refresh"
title=
"刷新"
@
click=
"loadTree"
></Button>
<Button
icon=
"md-rewind"
title=
"收起"
@
click=
"hide"
></Button>
</ButtonGroup>
</div>
</h3>
<div
class=
"search"
>
<Input
search
placeholder=
"请输入关键字"
v-model=
"keys"
clearable
/>
<Input
search
placeholder=
"请输入关键字"
v-model=
"keys"
clearable
/>
</div>
<div
class=
"fg"
>
<div
class=
"tree"
>
<Tree
:data=
"data"
:render=
"renderContent"
ref=
"tree"
@
on-select-change=
"change"
></Tree>
</div>
<div
class=
"tree"
>
<Tree
:data=
"data"
:render=
"renderContent"
ref=
"tree"
@
on-select-change=
"change"
></Tree>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
name
:
""
,
data
()
{
return
{
keys
:
""
,
expand
:
false
,
list
:
[]
};
},
created
()
{
this
.
loadTree
();
},
methods
:
{
loadTree
()
{
this
.
$api
.
get
(
`
${
technologyUrl
}
productlevel/getproducttreenew`
)
.
then
(
r
=>
{
setTree
(
r
.
result
);
function
setTree
(
data
)
{
data
.
map
(
u
=>
{
u
.
title
=
u
.
name
;
u
.
value
=
u
.
id
;
// u.expand = true;
// u.selected = false;
// u.checked = false;
if
(
u
.
children
)
{
setTree
(
u
.
children
);
}
});
}
var
data
=
r
.
result
;
this
.
list
=
this
.
$u
.
clone
(
data
);
});
name
:
""
,
data
()
{
return
{
keys
:
""
,
expand
:
false
,
list
:
[]
};
},
toggle
()
{
this
.
expand
=
!
this
.
expand
;
created
()
{
this
.
loadTree
()
;
},
renderContent
(
h
,
{
root
,
node
,
data
})
{
let
type
=
"md-folder"
;
if
(
data
.
isProduct
!=
0
)
{
type
=
"ios-image"
;
}
return
h
(
"span"
,
[
h
(
"Icon"
,
{
props
:
{
type
:
type
},
style
:
{
marginRight
:
"8px"
}
}),
h
(
"span"
,
{
style
:
{
color
:
data
.
isProduct
==
0
?
"#000"
:
"rgba(38, 128, 235, 1)"
methods
:
{
loadTree
()
{
this
.
$api
.
get
(
`
${
technologyUrl
}
productlevel/getproducttreenew`
)
.
then
(
r
=>
{
setTree
(
r
.
result
);
function
setTree
(
data
)
{
data
.
map
(
u
=>
{
u
.
title
=
u
.
name
;
u
.
value
=
u
.
id
;
u
.
expand
=
true
;
// u.selected = false;
// u.checked = false;
if
(
u
.
children
)
{
setTree
(
u
.
children
);
}
});
}
var
data
=
r
.
result
;
this
.
list
=
this
.
$u
.
clone
(
data
);
});
},
toggle
()
{
this
.
expand
=
!
this
.
expand
;
},
renderContent
(
h
,
{
root
,
node
,
data
})
{
let
type
=
"md-folder"
;
if
(
data
.
isProduct
!=
0
)
{
type
=
"ios-image"
;
}
},
data
.
title
)
]);
},
change
(
v
,
b
)
{
// console.log(b);
let
ids
=
[];
let
productIds
=
[];
if
(
b
.
bomId
!==
0
)
{
ids
.
push
(
b
.
bomId
);
}
productIds
.
push
(
b
.
value
);
if
(
b
.
children
)
{
addId
(
b
.
children
);
function
addId
(
data
)
{
data
.
map
(
u
=>
{
if
(
u
.
bomId
!==
0
)
{
ids
.
push
(
u
.
bomId
);
return
h
(
"span"
,
[
h
(
"Icon"
,
{
props
:
{
type
:
type
},
style
:
{
marginRight
:
"8px"
}
}),
h
(
"span"
,
{
style
:
{
color
:
data
.
isProduct
==
0
?
"#000"
:
"rgba(38, 128, 235, 1)"
}
},
data
.
title
)
]);
},
change
(
v
,
b
)
{
// console.log(b);
let
ids
=
[];
let
productIds
=
[];
if
(
b
.
bomId
!==
0
)
{
ids
.
push
(
b
.
bomId
);
}
productIds
.
push
(
u
.
value
);
if
(
u
.
children
)
{
addId
(
u
.
children
);
productIds
.
push
(
b
.
value
);
if
(
b
.
children
)
{
addId
(
b
.
children
);
function
addId
(
data
)
{
data
.
map
(
u
=>
{
if
(
u
.
bomId
!==
0
)
{
ids
.
push
(
u
.
bomId
);
}
productIds
.
push
(
u
.
value
);
if
(
u
.
children
)
{
addId
(
u
.
children
);
}
});
}
}
});
this
.
$emit
(
"on-select"
,
b
.
bomId
,
b
,
productIds
,
ids
);
},
hide
()
{
this
.
$emit
(
"on-hide"
);
}
}
this
.
$emit
(
"on-select"
,
b
.
bomId
,
b
,
productIds
,
ids
);
},
hide
()
{
this
.
$emit
(
"on-hide"
);
}
},
computed
:
{
data
()
{
let
items
=
this
.
$u
.
clone
(
this
.
list
);
let
expand
=
this
.
expand
;
let
result
=
[];
search
(
this
.
keys
,
items
);
function
search
(
keys
,
data
)
{
data
.
map
(
u
=>
{
if
(
keys
.
length
<
2
)
{
u
.
expand
=
expand
;
result
.
push
(
u
);
}
else
{
u
.
expand
=
expand
;
if
(
u
.
title
.
indexOf
(
keys
)
>
-
1
)
{
result
.
push
(
u
);
}
else
if
(
u
.
children
)
{
search
(
keys
,
u
.
children
);
computed
:
{
data
()
{
let
items
=
this
.
$u
.
clone
(
this
.
list
);
let
expand
=
this
.
expand
;
let
result
=
[];
search
(
this
.
keys
,
items
);
function
search
(
keys
,
data
)
{
data
.
map
(
u
=>
{
if
(
keys
.
length
<
2
)
{
u
.
expand
=
expand
;
result
.
push
(
u
);
}
else
{
u
.
expand
=
expand
;
if
(
u
.
title
.
indexOf
(
keys
)
>
-
1
)
{
result
.
push
(
u
);
}
else
if
(
u
.
children
)
{
search
(
keys
,
u
.
children
);
}
}
}
);
}
}
});
}
return
result
;
return
result
;
}
}
}
};
</
script
>
<
style
lang=
"less"
>
@import "../../assets/css/custom.less";
.tree-menu {
h3 {
height: 50px;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 50px;
color: @left-tree-header-color;
background: @left-tree-header-bg-color;
opacity: 1;
padding-left: 10px;
}
.search {
height: 50px;
padding: 5px 10px;
}
.fg {
flex: none;
// height:0;
overflow: auto;
padding-left: 10px;
}
.tree {
height: calc(100vh - 215px);
overflow: auto;
}
h3 {
height: 50px;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 50px;
color: @left-tree-header-color;
background: @left-tree-header-bg-color;
opacity: 1;
padding-left: 10px;
}
.search {
height: 50px;
padding: 5px 10px;
}
.fg {
flex: none;
// height:0;
overflow: auto;
padding-left: 10px;
}
.tree {
height: calc(100vh - 215px);
overflow: auto;
}
}
</
style
>
\ No newline at end of file
</
style
>
pages/handle/examine1/index.vue
View file @
4c9c39af
...
...
@@ -266,6 +266,7 @@ export default {
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
footerStatu
=
3
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
...
...
@@ -282,6 +283,7 @@ export default {
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
...
...
@@ -298,6 +300,7 @@ export default {
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
...
...
pages/handle/examine10/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
style=
"text-align:left;"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
formMyCheck.radioSp === '驳回' || formMyCheck.radioSp === '终止'
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"修复文件审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此修复文件审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此修复文件审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
'../api'
import
Detail
from
'./detail'
import
Process
from
'../process'
export
default
{
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[
{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}
],
comment
:
[
{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}
]
}
}
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{
}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{
}
})
}
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}],
comment
:
[{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}]
}
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
this
.
modalCheckNo
=
true
}
})
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
}
})
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{}
})
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
this
.
modalCheckNo
=
true
}
})
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
}
})
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
}
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'OrderDataReview'
+
'.'
+
key
return
this
.
$t
(
key
)
}
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'OrderDataReview'
+
'.'
+
key
return
this
.
$t
(
key
)
}
},
watch
:
{}
watch
:
{}
}
</
script
>
pages/handle/examine11/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
style=
"text-align:left;"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
formMyCheck.radioSp === '驳回' || formMyCheck.radioSp === '终止'
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"支撑文件审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此支撑文件审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此支撑文件审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
'../api'
import
Detail
from
'./detail'
import
Process
from
'../process'
export
default
{
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[
{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}
],
comment
:
[
{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}
]
}
}
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{
}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{
}
})
}
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}],
comment
:
[{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}]
}
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
this
.
modalCheckNo
=
true
}
})
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
}
})
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{}
})
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
this
.
modalCheckNo
=
true
}
})
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
}
})
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
}
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'OrderDataReview'
+
'.'
+
key
return
this
.
$t
(
key
)
}
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'OrderDataReview'
+
'.'
+
key
return
this
.
$t
(
key
)
}
},
watch
:
{}
watch
:
{}
}
</
script
>
pages/handle/examine12/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
style=
"text-align:left;"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
formMyCheck.radioSp === '驳回' || formMyCheck.radioSp === '终止'
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"切片文件审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此切片文件审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此切片文件审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
'../api'
import
Detail
from
'./detail'
import
Process
from
'../process'
export
default
{
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[
{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}
],
comment
:
[
{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}
]
}
}
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{
}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{
}
})
}
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}],
comment
:
[{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}]
}
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
this
.
modalCheckNo
=
true
}
})
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
}
})
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{}
})
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
this
.
modalCheckNo
=
true
}
})
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
}
})
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
this
.
modalCheckNo
=
true
}
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'OrderDataReview'
+
'.'
+
key
return
this
.
$t
(
key
)
}
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'OrderDataReview'
+
'.'
+
key
return
this
.
$t
(
key
)
}
},
watch
:
{}
watch
:
{}
}
</
script
>
pages/handle/examine13/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
style=
"text-align:left;"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
formMyCheck.radioSp === '驳回' || formMyCheck.radioSp === '终止'
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"物料审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此物料审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此物料审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
"../api"
;
import
Detail
from
"./detail"
;
import
Process
from
"../process"
;
export
default
{
layout
:
"empty"
,
name
:
"Index"
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
"通过"
,
comment
:
""
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
""
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
""
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[
{
required
:
true
,
message
:
"请选择驳回节点"
,
type
:
"number"
,
trigger
:
"change"
}
],
comment
:
[
{
required
:
true
,
message
:
"请输入原因"
,
trigger
:
"blur"
}
]
}
};
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
;
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
"id"
);
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
"statu"
);
this
.
getDetailInfos
(
this
.
detailId
);
},
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
"通过"
)
{
this
.
statuTitle
=
"通过"
;
this
.
modalCheckNo
=
true
;
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"驳回"
)
{
this
.
$refs
[
"formValidate"
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
;
this
.
statuTitle
=
"驳回"
;
}
else
{
}
});
}
else
{
this
.
$refs
[
"formValidate"
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
;
this
.
statuTitle
=
"终止"
;
}
else
{
}
});
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[];
let
param
=
{
Id
:
idVal
};
Api
.
getdetail
(
param
).
then
(
r
=>
{
this
.
testObj
=
r
;
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
;
this
.
passId
=
r
.
result
.
currentRecordId
;
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
;
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
);
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
}
});
layout
:
"empty"
,
name
:
"Index"
,
components
:
{
Detail
,
Process
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[];
nodes
.
forEach
(
data
=>
{
let
nodeObj
=
{};
nodeObj
.
value
=
data
.
id
;
nodeObj
.
label
=
data
.
name
;
nodeObj
.
statu
=
1
;
this
.
nodeList
.
push
(
nodeObj
);
});
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
;
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
item
=>
item
.
value
==
this
.
currentNodeID
);
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
;
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
;
}
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
"通过"
,
comment
:
""
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
""
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
""
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[{
required
:
true
,
message
:
"请选择驳回节点"
,
type
:
"number"
,
trigger
:
"change"
}],
comment
:
[{
required
:
true
,
message
:
"请输入原因"
,
trigger
:
"blur"
}]
}
};
},
changeToNode
(
val
)
{
if
(
val
==
"1"
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
;
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
;
}
props
:
{},
async
fetch
(
{
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
""
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
};
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"审批通过成功"
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"审批通过失败"
);
this
.
modalCheckNo
=
true
;
}
});
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
;
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
"id"
);
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
"statu"
);
this
.
getDetailInfos
(
this
.
detailId
);
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
};
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"驳回审批成功"
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
this
.
modalCheckNo
=
true
;
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
"通过"
)
{
this
.
statuTitle
=
"通过"
;
this
.
modalCheckNo
=
true
;
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"驳回"
)
{
this
.
$refs
[
"formValidate"
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
;
this
.
statuTitle
=
"驳回"
;
}
else
{}
});
}
else
{
this
.
$refs
[
"formValidate"
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
;
this
.
statuTitle
=
"终止"
;
}
else
{}
});
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[];
let
param
=
{
Id
:
idVal
};
Api
.
getdetail
(
param
).
then
(
r
=>
{
this
.
testObj
=
r
;
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
;
this
.
passId
=
r
.
result
.
currentRecordId
;
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
;
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
);
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
}
});
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[];
nodes
.
forEach
(
data
=>
{
let
nodeObj
=
{};
nodeObj
.
value
=
data
.
id
;
nodeObj
.
label
=
data
.
name
;
nodeObj
.
statu
=
1
;
this
.
nodeList
.
push
(
nodeObj
);
});
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
;
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
item
=>
item
.
value
==
this
.
currentNodeID
);
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
;
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
;
}
},
changeToNode
(
val
)
{
if
(
val
==
"1"
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
;
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
;
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
""
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
};
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"审批通过成功"
);
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"审批通过失败"
);
this
.
modalCheckNo
=
true
;
}
});
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
};
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"驳回审批成功"
);
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
this
.
modalCheckNo
=
true
;
}
});
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
};
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"终止审批成功"
);
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
this
.
modalCheckNo
=
true
;
}
});
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
"驳回"
)
{
this
.
checkNo
();
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"终止"
)
{
this
.
checkCancel
();
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"通过"
)
{
this
.
checkOk
();
}
this
.
footerStatu
=
3
;
},
l
(
key
)
{
key
=
"OrderDataReview"
+
"."
+
key
;
return
this
.
$t
(
key
);
}
});
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
};
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"终止审批成功"
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
this
.
modalCheckNo
=
true
;
}
});
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
"驳回"
)
{
this
.
checkNo
();
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"终止"
)
{
this
.
checkCancel
();
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"通过"
)
{
this
.
checkOk
();
}
this
.
footerStatu
=
3
;
},
l
(
key
)
{
key
=
"OrderDataReview"
+
"."
+
key
;
return
this
.
$t
(
key
);
}
},
watch
:
{}
watch
:
{}
};
</
script
>
pages/handle/examine14/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
style=
"text-align:left;"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
formMyCheck.radioSp === '驳回' || formMyCheck.radioSp === '终止'
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"文档审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此文档审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此文档审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
"../api"
;
import
Detail
from
"./detail"
;
import
Process
from
"../process"
;
export
default
{
layout
:
"empty"
,
name
:
"Index"
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
"通过"
,
comment
:
""
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
""
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
""
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[
{
required
:
true
,
message
:
"请选择驳回节点"
,
type
:
"number"
,
trigger
:
"change"
}
],
comment
:
[
{
required
:
true
,
message
:
"请输入原因"
,
trigger
:
"blur"
}
]
}
};
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
;
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
"id"
);
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
"statu"
);
this
.
getDetailInfos
(
this
.
detailId
);
},
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
"通过"
)
{
this
.
statuTitle
=
"通过"
;
this
.
modalCheckNo
=
true
;
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"驳回"
)
{
this
.
$refs
[
"formValidate"
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
;
this
.
statuTitle
=
"驳回"
;
}
else
{
}
});
}
else
{
this
.
$refs
[
"formValidate"
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
;
this
.
statuTitle
=
"终止"
;
}
else
{
}
});
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[];
let
param
=
{
Id
:
idVal
};
Api
.
getdetail
(
param
).
then
(
r
=>
{
this
.
testObj
=
r
;
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
;
this
.
passId
=
r
.
result
.
currentRecordId
;
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
;
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
);
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
}
});
layout
:
"empty"
,
name
:
"Index"
,
components
:
{
Detail
,
Process
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[];
nodes
.
forEach
(
data
=>
{
let
nodeObj
=
{};
nodeObj
.
value
=
data
.
id
;
nodeObj
.
label
=
data
.
name
;
nodeObj
.
statu
=
1
;
this
.
nodeList
.
push
(
nodeObj
);
});
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
;
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
item
=>
item
.
value
==
this
.
currentNodeID
);
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
;
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
;
}
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
"通过"
,
comment
:
""
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
""
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
""
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[{
required
:
true
,
message
:
"请选择驳回节点"
,
type
:
"number"
,
trigger
:
"change"
}],
comment
:
[{
required
:
true
,
message
:
"请输入原因"
,
trigger
:
"blur"
}]
}
};
},
changeToNode
(
val
)
{
if
(
val
==
"1"
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
;
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
;
}
props
:
{},
async
fetch
(
{
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
""
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
};
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"审批通过成功"
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"审批通过失败"
);
this
.
modalCheckNo
=
true
;
}
});
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
;
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
"id"
);
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
"statu"
);
this
.
getDetailInfos
(
this
.
detailId
);
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
};
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"驳回审批成功"
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
this
.
modalCheckNo
=
true
;
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
"通过"
)
{
this
.
statuTitle
=
"通过"
;
this
.
modalCheckNo
=
true
;
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"驳回"
)
{
this
.
$refs
[
"formValidate"
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
;
this
.
statuTitle
=
"驳回"
;
}
else
{}
});
}
else
{
this
.
$refs
[
"formValidate"
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
;
this
.
statuTitle
=
"终止"
;
}
else
{}
});
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[];
let
param
=
{
Id
:
idVal
};
Api
.
getdetail
(
param
).
then
(
r
=>
{
this
.
testObj
=
r
;
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
;
this
.
passId
=
r
.
result
.
currentRecordId
;
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
;
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
);
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
}
});
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[];
nodes
.
forEach
(
data
=>
{
let
nodeObj
=
{};
nodeObj
.
value
=
data
.
id
;
nodeObj
.
label
=
data
.
name
;
nodeObj
.
statu
=
1
;
this
.
nodeList
.
push
(
nodeObj
);
});
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
;
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
item
=>
item
.
value
==
this
.
currentNodeID
);
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
;
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
;
}
},
changeToNode
(
val
)
{
if
(
val
==
"1"
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
;
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
;
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
""
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
};
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"审批通过成功"
);
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"审批通过失败"
);
this
.
modalCheckNo
=
true
;
}
});
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
};
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"驳回审批成功"
);
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
this
.
modalCheckNo
=
true
;
}
});
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
};
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"终止审批成功"
);
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
this
.
modalCheckNo
=
true
;
}
});
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
"驳回"
)
{
this
.
checkNo
();
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"终止"
)
{
this
.
checkCancel
();
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"通过"
)
{
this
.
checkOk
();
}
this
.
footerStatu
=
3
;
},
l
(
key
)
{
key
=
"OrderDataReview"
+
"."
+
key
;
return
this
.
$t
(
key
);
}
});
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
};
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"终止审批成功"
);
this
.
modalCheckNo
=
false
;
}
else
{
this
.
$Message
.
error
(
"加载失败"
);
this
.
modalCheckNo
=
true
;
}
});
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
"驳回"
)
{
this
.
checkNo
();
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"终止"
)
{
this
.
checkCancel
();
}
else
if
(
this
.
formMyCheck
.
radioSp
==
"通过"
)
{
this
.
checkOk
();
}
this
.
footerStatu
=
3
;
},
l
(
key
)
{
key
=
"OrderDataReview"
+
"."
+
key
;
return
this
.
$t
(
key
);
}
},
watch
:
{}
watch
:
{}
};
</
script
>
pages/handle/examine2/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
style=
"text-align:left;"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
formMyCheck.radioSp === '驳回' || formMyCheck.radioSp === '终止'
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"订单审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此订单审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"订单审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此订单审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
'../api'
import
Detail
from
'./detail'
import
Process
from
'../process'
export
default
{
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
ruleValidate
:
{
rejectToNodeId
:
[
{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}
],
comment
:
[
{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}
]
}
}
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'通过'
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{
}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{
}
})
}
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
ruleValidate
:
{
rejectToNodeId
:
[{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}],
comment
:
[{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}]
}
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
props
:
{},
async
fetch
(
{
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
//审批通过
checkOk
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckNo
=
false
this
.
footerStatu
=
3
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
//审批驳回
checkNo
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
this
.
modalCheckNo
=
false
},
//审批终止
checkCancel
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'通过'
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{}
})
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckNo
=
false
this
.
footerStatu
=
3
},
//审批驳回
checkNo
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
this
.
modalCheckNo
=
false
},
//审批终止
checkCancel
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
this
.
modalCheckNo
=
false
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
})
this
.
modalCheckNo
=
false
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
},
watch
:
{}
watch
:
{}
}
</
script
>
pages/handle/examine3/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
style=
"text-align:left;"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
formMyCheck.radioSp === '驳回' || formMyCheck.radioSp === '终止'
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"订单审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此工艺规程审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"订单审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此工艺规程审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
'../api'
import
Detail
from
'./detail'
import
Process
from
'../process'
export
default
{
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
ruleValidate
:
{
rejectToNodeId
:
[
{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}
],
comment
:
[
{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}
]
}
}
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'通过'
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{
}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{
}
})
}
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
ruleValidate
:
{
rejectToNodeId
:
[{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}],
comment
:
[{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}]
}
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
props
:
{},
async
fetch
(
{
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
//审批通过
checkOk
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckNo
=
false
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
//审批驳回
checkNo
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//审批终止
checkCancel
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'通过'
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{}
})
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckNo
=
false
},
//审批驳回
checkNo
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//审批终止
checkCancel
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
},
watch
:
{}
watch
:
{}
}
</
script
>
pages/handle/examine4/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
style=
"width:100%;text-align:left;"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<!--
<Radio
label=
"终止"
></Radio>
-->
</RadioGroup>
<Select
v-if=
"formMyCheck.radioSp === '驳回'"
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
v-if=
"formMyCheck.radioSp === '驳回'"
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
<Input
v-if=
"formMyCheck.radioSp === '驳回'"
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请填写原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
确定
</Button>
</Col>
</Row>
</Form>
<Form
:model=
"formMyCheck"
:label-width=
"100"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
style=
"width:100%;text-align:left;"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<!--
<Radio
label=
"终止"
></Radio>
-->
</RadioGroup>
<Select
v-if=
"formMyCheck.radioSp === '驳回'"
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
v-if=
"formMyCheck.radioSp === '驳回'"
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
<Input
v-if=
"formMyCheck.radioSp === '驳回'"
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请填写原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
确定
</Button>
</Col>
</Row>
</Form>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"材料消耗单审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此材料消耗单审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"材料消耗单审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此材料消耗单审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
'../api'
import
Detail
from
'./detail'
import
Process
from
'../process'
export
default
{
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:{}
}
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
methods
:
{
nextCheckOk
()
{
let
rejectToNode
=
this
.
formMyCheck
.
rejectToNodeId
let
commasge
=
this
.
formMyCheck
.
comment
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
if
(
rejectToNode
==
null
){
this
.
$Message
.
error
(
'请选择驳回节点'
)
return
}
if
(
commasge
==
''
){
this
.
$Message
.
error
(
'请填写驳回原因'
)
return
}
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
// else {
// if(commasge==''){
// this.$Message.error('请填写终止原因')
// return
// }
// this.modalCheckNo = true
// this.statuTitle = '终止'
// }
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{}
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
props
:
{},
async
fetch
(
{
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
//审批通过
checkOk
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
[],
data
:
{}
}
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckOk
=
false
},
//审批驳回
checkNo
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
//审批终止
checkCancel
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
methods
:
{
nextCheckOk
()
{
let
rejectToNode
=
this
.
formMyCheck
.
rejectToNodeId
let
commasge
=
this
.
formMyCheck
.
comment
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
if
(
rejectToNode
==
null
)
{
this
.
$Message
.
error
(
'请选择驳回节点'
)
return
}
if
(
commasge
==
''
)
{
this
.
$Message
.
error
(
'请填写驳回原因'
)
return
}
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
// else {
// if(commasge==''){
// this.$Message.error('请填写终止原因')
// return
// }
// this.modalCheckNo = true
// this.statuTitle = '终止'
// }
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
[],
data
:
{}
}
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckOk
=
false
},
//审批驳回
checkNo
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//审批终止
checkCancel
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
// if (this.formMyCheck.radioSp == '驳回') {
this
.
checkNo
()
// }
// else if (this.formMyCheck.radioSp == '终止') {
// this.checkCancel()
// }
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
// if (this.formMyCheck.radioSp == '驳回') {
this
.
checkNo
()
// }
// else if (this.formMyCheck.radioSp == '终止') {
// this.checkCancel()
// }
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
},
watch
:
{}
watch
:
{}
}
</
script
>
pages/handle/examine6/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
style=
"text-align:left;"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
formMyCheck.radioSp === '驳回' || formMyCheck.radioSp === '终止'
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
</div>
<!-- 订单审里通过form -->
<!--
<Modal
v-model=
"modalCheckOk"
title=
"订单审里"
width=
"800"
:scrollable=
"true"
>
...
...
@@ -104,234 +74,235 @@
</div>
</Modal>
-->
<Modal
v-model=
"modalCheckNo"
title=
"订单审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此订单审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此订单审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
'../api'
import
Detail
from
'./detail'
import
Process
from
'../process'
export
default
{
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[
{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}
],
comment
:
[
{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}
]
}
}
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
console
.
log
(
this
.
detailId
)
console
.
log
(
this
.
footerStatu
)
this
.
getDetailInfos
(
this
.
detailId
)
},
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'通过'
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{
}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{
}
})
}
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}],
comment
:
[{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}]
}
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
//this.nextNodeUserIdList
data
:
{}
}
console
.
log
(
param
)
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
footerStatu
=
3
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckNo
=
false
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
console
.
log
(
this
.
detailId
)
console
.
log
(
this
.
footerStatu
)
this
.
getDetailInfos
(
this
.
detailId
)
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'通过'
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{}
})
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
//this.nextNodeUserIdList
data
:
{}
}
console
.
log
(
param
)
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckNo
=
false
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
},
watch
:
{}
watch
:
{}
}
</
script
>
pages/handle/examine7/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
@
node-click=
"show"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
@
node-click=
"show"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
>
<Form
:model=
"formMyCheck"
:label-width=
"150"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
style=
"width:100%;text-align:left;"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<!--
<Radio
label=
"终止"
></Radio>
-->
</RadioGroup>
<Select
v-if=
"formMyCheck.radioSp === '驳回'"
style=
"width:200px"
clearable
ransfer
placeholder=
"请选择驳回节点"
class=
"selectBox"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
v-if=
"formMyCheck.radioSp === '驳回'"
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
<Input
v-if=
"formMyCheck.radioSp === '驳回' ||
formMyCheck.radioSp === '终止'"
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请如如驳回原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
<Form
:model=
"formMyCheck"
:label-width=
"150"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
style=
"width:100%;text-align:left;"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<!--
<Radio
label=
"终止"
></Radio>
-->
</RadioGroup>
<Select
v-if=
"formMyCheck.radioSp === '驳回'"
style=
"width:200px"
clearable
ransfer
placeholder=
"请选择驳回节点"
class=
"selectBox"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
v-if=
"formMyCheck.radioSp === '驳回'"
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
<Input
v-if=
"formMyCheck.radioSp === '驳回' ||
formMyCheck.radioSp === '终止'"
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请如如驳回原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
</div>
<!-- 不合格品通过form -->
<Modal
v-model=
"modalCheckOk"
title=
"不合格品审理"
width=
"800"
:mask-closable=
"false"
:scrollable=
"true"
>
<div
v-if=
"showSize==2"
>
<Form
:model=
"formMyCheck"
ref=
"formMyCheck"
:rules=
"ruleValidate"
:label-width=
"150"
>
<Row>
<Col
span=
"24"
>
<FormItem
label=
"问题产生原因分析:"
prop=
"causeAnalysis"
style=
"width:100%"
>
<Input
type=
"textarea"
:autosize=
"
{minRows: 1,maxRows: 5}" v-model="formMyCheck.causeAnalysis"
:disabled="disabledFlag" style="width: 600px"/>
</FormItem>
</Col>
<Col
span=
"24"
>
<FormItem
label=
"审理结论:"
prop=
"conclusion"
style=
"width:100%"
>
<CheckboxGroup
v-model=
"formMyCheck.conclusion"
>
<Checkbox
label=
"返工"
value=
'1'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"返修"
value=
'2'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"降级使用"
value=
'3'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"让步"
value=
'4'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"报废"
value=
'5'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"通知顾客"
value=
'6'
:disabled=
"disabledFlag"
></Checkbox>
</CheckboxGroup>
</FormItem>
</Col>
</Row>
<Row>
<Col
span=
"24"
>
<FormItem
label=
"纠正措施:"
prop=
"measures"
style=
"width:100%"
>
<Input
type=
"textarea"
:autosize=
"
{minRows: 1,maxRows: 5}" v-model="formMyCheck.measures"
:disabled="disabledFlag" style="width: 600px"/>
</FormItem>
</Col>
<Col
span=
"24"
>
<FormItem
label=
"审理级别:"
prop=
"triaLevel"
style=
"width:100%"
>
<CheckboxGroup
v-model=
"formMyCheck.triaLevel"
>
<Checkbox
label=
"一级审理"
value=
'1'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"二级审理"
value=
'2'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"三级审理"
value=
'3'
:disabled=
"disabledFlag"
></Checkbox>
</CheckboxGroup>
</FormItem>
</Col>
</Row>
</Form>
</div>
<div
v-if=
"showSize==4"
>
<Form
:model=
"formResultText"
ref=
"formResultText"
:rules=
"ruleValidate"
:label-width=
"150"
>
<Row>
<Col
span=
"24"
>
<FormItem
label=
"落实情况验证结果:"
prop=
"resultText"
style=
"width:100%"
>
<Input
type=
"textarea"
:autosize=
"
{minRows:3,maxRows: 7}" v-model="formResultText.resultText"
:disabled="disabledFlag" style="width: 600px"/>
</FormItem>
</Col>
</Row>
</Form>
</div>
<div
slot=
"footer"
>
<Button
@
click=
"cancelFn"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkOk()"
v-show=
"footerStatue"
>
确定
</Button>
</div>
<Modal
v-model=
"modalCheckOk"
title=
"不合格品审理"
width=
"800"
:mask-closable=
"false"
:scrollable=
"true"
>
<div
v-if=
"showSize==2"
>
<Form
:model=
"formMyCheck"
ref=
"formMyCheck"
:rules=
"ruleValidate"
:label-width=
"150"
>
<Row>
<Col
span=
"24"
>
<FormItem
label=
"问题产生原因分析:"
prop=
"causeAnalysis"
style=
"width:100%"
>
<Input
type=
"textarea"
:autosize=
"
{minRows: 1,maxRows: 5}" v-model="formMyCheck.causeAnalysis" :disabled="disabledFlag" style="width: 600px" />
</FormItem>
</Col>
<Col
span=
"24"
>
<FormItem
label=
"审理结论:"
prop=
"conclusion"
style=
"width:100%"
>
<CheckboxGroup
v-model=
"formMyCheck.conclusion"
>
<Checkbox
label=
"返工"
value=
'1'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"返修"
value=
'2'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"降级使用"
value=
'3'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"让步"
value=
'4'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"报废"
value=
'5'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"通知顾客"
value=
'6'
:disabled=
"disabledFlag"
></Checkbox>
</CheckboxGroup>
</FormItem>
</Col>
</Row>
<Row>
<Col
span=
"24"
>
<FormItem
label=
"纠正措施:"
prop=
"measures"
style=
"width:100%"
>
<Input
type=
"textarea"
:autosize=
"
{minRows: 1,maxRows: 5}" v-model="formMyCheck.measures" :disabled="disabledFlag" style="width: 600px" />
</FormItem>
</Col>
<Col
span=
"24"
>
<FormItem
label=
"审理级别:"
prop=
"triaLevel"
style=
"width:100%"
>
<CheckboxGroup
v-model=
"formMyCheck.triaLevel"
>
<Checkbox
label=
"一级审理"
value=
'1'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"二级审理"
value=
'2'
:disabled=
"disabledFlag"
></Checkbox>
<Checkbox
label=
"三级审理"
value=
'3'
:disabled=
"disabledFlag"
></Checkbox>
</CheckboxGroup>
</FormItem>
</Col>
</Row>
</Form>
</div>
<div
v-if=
"showSize==4"
>
<Form
:model=
"formResultText"
ref=
"formResultText"
:rules=
"ruleValidate"
:label-width=
"150"
>
<Row>
<Col
span=
"24"
>
<FormItem
label=
"落实情况验证结果:"
prop=
"resultText"
style=
"width:100%"
>
<Input
type=
"textarea"
:autosize=
"
{minRows:3,maxRows: 7}" v-model="formResultText.resultText" :disabled="disabledFlag" style="width: 600px" />
</FormItem>
</Col>
</Row>
</Form>
</div>
<div
slot=
"footer"
>
<Button
@
click=
"cancelFn"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkOk()"
v-show=
"footerStatue"
>
确定
</Button>
</div>
</Modal>
<Modal
v-model=
"ResultModal"
title=
"测试步骤"
width=
"800"
:scrollable=
"true"
>
<div>
{{
'第'
+
this
.
showSize
+
'布'
}}
{{
'id'
+
this
.
typeId
}}
</div>
<div
slot=
"footer"
>
<Button
@
click=
"cancelFn02"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkOk6"
>
确定
</Button>
</div>
<Modal
v-model=
"ResultModal"
title=
"测试步骤"
width=
"800"
:scrollable=
"true"
>
<div>
{{
'第'
+
this
.
showSize
+
'布'
}}
{{
'id'
+
this
.
typeId
}}
</div>
<div
slot=
"footer"
>
<Button
@
click=
"cancelFn02"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkOk6"
>
确定
</Button>
</div>
</Modal>
<Modal
v-model=
"modalCheckNo"
title=
"不合格品审批"
width=
"800"
:scrollable=
"true"
>
<br/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此不合格品审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"不合格品审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此不合格品审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
'../api'
import
Detail
from
'./detail'
import
Process
from
'../process'
export
default
{
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
causeAnalysis
:
''
,
//问题产生原因分析
conclusion
:
[],
//审理结论
measures
:
''
,
//纠正措施
triaLevel
:
[],
//审理级别
rejectToNodeId
:
null
},
formResultText
:{
resultText
:
''
},
//落实情况
ResultModal
:
false
,
//落实情况
footerStatue
:
true
,
//详情隐藏确定
disabledFlag
:
false
,
//是否可用
stepeFlag
:
null
,
//审核flag
showSize
:
1
,
// 弹框默认展示内容
ruleValidate
:
{
causeAnalysis
:
[{
required
:
true
,
message
:
'请填写原因分析'
,
trigger
:
'blur'
}],
conclusion
:
[
{
required
:
true
,
type
:
'array'
,
min
:
1
,
message
:
'至少选择一个审理结论'
,
trigger
:
'change'
},
// { type: 'array', max: 2, message: '最多选两个审理结论', trigger: 'change' }
],
measures
:
[{
required
:
true
,
message
:
'请填写纠正措施'
,
trigger
:
'blur'
}],
resultText
:
[{
required
:
true
,
message
:
'请填写落实情况'
,
trigger
:
'blur'
}],
triaLevel
:
[{
required
:
true
,
type
:
'array'
,
min
:
1
,
message
:
'至少选择一个审理级别'
,
trigger
:
'change'
}],
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
typeId
:
null
,
//审批节点
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:{}
}
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
methods
:
{
nextCheckOk
()
{
let
rejectToNode
=
this
.
formMyCheck
.
rejectToNodeId
let
commasge
=
this
.
formMyCheck
.
comment
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
if
(
this
.
typeId
==
2
){
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'通过'
}
else
{
this
.
footerStatue
=
true
this
.
modalCheckOk
=
true
}
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
if
(
rejectToNode
==
null
){
this
.
$Message
.
error
(
'请选择驳回节点'
)
return
}
if
(
commasge
==
''
){
this
.
$Message
.
error
(
'请填写驳回原因'
)
return
}
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{
this
.
$Message
.
error
(
'请选择审批意见'
)
// if(commasge==''){
// this.$Message.error('请填写终止原因')
// return
// }
// this.modalCheckNo = true
// this.statuTitle = '终止'
}
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
show
(
a
){
this
.
disabledFlag
=
true
let
contextDate
=
JSON
.
parse
(
a
.
contextData
)
console
.
log
(
a
)
if
(
contextDate
.
measures
){
this
.
showSize
=
2
this
.
stepeFlag
=
2
//第二步
this
.
formMyCheck
=
contextDate
}
else
if
(
contextDate
.
resultText
){
this
.
showSize
=
4
this
.
stepeFlag
=
4
this
.
formResultText
=
contextDate
}
// else{
// alert('第三步')
// }
this
.
modalCheckOk
=
true
this
.
footerStatue
=
false
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
typeId
=
r
.
result
.
currentIndexId
this
.
showSize
=
this
.
typeId
+
1
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
causeAnalysis
:
''
,
//问题产生原因分析
conclusion
:
[],
//审理结论
measures
:
''
,
//纠正措施
triaLevel
:
[],
//审理级别
rejectToNodeId
:
null
},
formResultText
:
{
resultText
:
''
},
//落实情况
ResultModal
:
false
,
//落实情况
footerStatue
:
true
,
//详情隐藏确定
disabledFlag
:
false
,
//是否可用
stepeFlag
:
null
,
//审核flag
showSize
:
1
,
// 弹框默认展示内容
ruleValidate
:
{
causeAnalysis
:
[{
required
:
true
,
message
:
'请填写原因分析'
,
trigger
:
'blur'
}],
conclusion
:
[{
required
:
true
,
type
:
'array'
,
min
:
1
,
message
:
'至少选择一个审理结论'
,
trigger
:
'change'
},
// { type: 'array', max: 2, message: '最多选两个审理结论', trigger: 'change' }
],
measures
:
[{
required
:
true
,
message
:
'请填写纠正措施'
,
trigger
:
'blur'
}],
resultText
:
[{
required
:
true
,
message
:
'请填写落实情况'
,
trigger
:
'blur'
}],
triaLevel
:
[{
required
:
true
,
type
:
'array'
,
min
:
1
,
message
:
'至少选择一个审理级别'
,
trigger
:
'change'
}],
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
typeId
:
null
,
//审批节点
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{}
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
cancelFn
(){
this
.
modalCheckOk
=
false
this
.
formMyCheck
.
radioSp
=
'通过'
this
.
disabledFlag
=
false
if
(
this
.
stepeFlag
=
2
){
this
.
showSize
=
4
}
},
cancelFn02
(){
this
.
ResultModal
=
false
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
checkOk6
(){
this
.
ResultModal
=
false
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
//审批通过
checkOk
()
{
if
(
this
.
typeId
==
1
){
this
.
$refs
[
'formMyCheck'
].
validate
((
valid
)
=>
{
// console.log(valid)
if
(
valid
)
{
methods
:
{
nextCheckOk
()
{
let
rejectToNode
=
this
.
formMyCheck
.
rejectToNodeId
let
commasge
=
this
.
formMyCheck
.
comment
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
if
(
this
.
typeId
==
2
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'通过'
}
else
{
this
.
footerStatue
=
true
this
.
modalCheckOk
=
true
}
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
if
(
rejectToNode
==
null
)
{
this
.
$Message
.
error
(
'请选择驳回节点'
)
return
}
if
(
commasge
==
''
)
{
this
.
$Message
.
error
(
'请填写驳回原因'
)
return
}
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{
this
.
$Message
.
error
(
'请选择审批意见'
)
// if(commasge==''){
// this.$Message.error('请填写终止原因')
// return
// }
// this.modalCheckNo = true
// this.statuTitle = '终止'
}
},
show
(
a
)
{
this
.
disabledFlag
=
true
let
contextDate
=
JSON
.
parse
(
a
.
contextData
)
console
.
log
(
a
)
if
(
contextDate
.
measures
)
{
this
.
showSize
=
2
this
.
stepeFlag
=
2
//第二步
this
.
formMyCheck
=
contextDate
}
else
if
(
contextDate
.
resultText
)
{
this
.
showSize
=
4
this
.
stepeFlag
=
4
this
.
formResultText
=
contextDate
}
// else{
// alert('第三步')
// }
this
.
modalCheckOk
=
true
this
.
footerStatue
=
false
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{
causeAnalysis
:
this
.
formMyCheck
.
causeAnalysis
,
conclusion
:
this
.
formMyCheck
.
conclusion
,
measures
:
this
.
formMyCheck
.
measures
,
triaLevel
:
this
.
formMyCheck
.
triaLevel
}
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
typeId
=
r
.
result
.
currentIndexId
this
.
showSize
=
this
.
typeId
+
1
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
Api
.
pass
(
param
).
then
((
r
)
=>
{
// console.log(param)
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckOk
=
false
}
else
{
console
.
log
(
"审核不通过"
)
}
})
}
else
if
(
this
.
typeId
==
3
){
this
.
$refs
[
'formResultText'
].
validate
((
valid
)
=>
{
if
(
valid
){
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{
resultText
:
this
.
formResultText
.
resultText
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
cancelFn
()
{
this
.
modalCheckOk
=
false
this
.
formMyCheck
.
radioSp
=
'通过'
this
.
disabledFlag
=
false
if
(
this
.
stepeFlag
=
2
)
{
this
.
showSize
=
4
}
},
cancelFn02
()
{
this
.
ResultModal
=
false
},
checkOk6
()
{
this
.
ResultModal
=
false
},
//审批通过
checkOk
()
{
if
(
this
.
typeId
==
1
)
{
this
.
$refs
[
'formMyCheck'
].
validate
((
valid
)
=>
{
// console.log(valid)
if
(
valid
)
{
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{
causeAnalysis
:
this
.
formMyCheck
.
causeAnalysis
,
conclusion
:
this
.
formMyCheck
.
conclusion
,
measures
:
this
.
formMyCheck
.
measures
,
triaLevel
:
this
.
formMyCheck
.
triaLevel
}
}
}
Api
.
pass
(
param
).
then
((
r
)
=>
{
// console.log(param)
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
footerStatu
=
3
Api
.
pass
(
param
).
then
((
r
)
=>
{
// console.log(param)
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckOk
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
console
.
log
(
"审核不通过"
)
}
})
}
else
if
(
this
.
typeId
==
3
)
{
this
.
$refs
[
'formResultText'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{
resultText
:
this
.
formResultText
.
resultText
}
}
Api
.
pass
(
param
).
then
((
r
)
=>
{
// console.log(param)
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckOk
=
false
}
})
this
.
modalCheckOk
=
false
})
}
},
//审批驳回
checkNo
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
}
},
//审批驳回
checkNo
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//审批终止
checkCancel
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
// 通过
passFn
(){
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
},
//审批终止
checkCancel
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
// 通过
passFn
()
{
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
){
this
.
passFn
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
this
.
footerStatu
=
3
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
passFn
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
},
watch
:
{}
watch
:
{}
}
</
script
>
pages/handle/examine8/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
@
node-click=
"show"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
@
node-click=
"show"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
style=
"text-align:left;"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
formMyCheck.radioSp === '驳回' || formMyCheck.radioSp === '终止'
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
</div>
<!-- 订单审里通过form -->
<Modal
v-model=
"modalCheckOk"
title=
"协调单审理"
width=
"800"
:scrollable=
"true"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
>
<Row>
<Col
span=
"12"
>
<FormItem
label=
"闭环情况"
style=
"width:100%"
>
<Input
v-model=
"formMyCheck.close_situation"
style=
"width:500px"
/>
</FormItem>
</Col>
</Row>
</Form>
<div
slot=
"footer"
v-show=
"footerStatue === true"
>
<Button
@
click=
"modalCheckOk = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkOk"
>
确定
</Button>
</div>
<Form
:model=
"formMyCheck"
:label-width=
"100"
>
<Row>
<Col
span=
"12"
>
<FormItem
label=
"闭环情况"
style=
"width:100%"
>
<Input
v-model=
"formMyCheck.close_situation"
style=
"width:500px"
/>
</FormItem>
</Col>
</Row>
</Form>
<div
slot=
"footer"
v-show=
"footerStatue === true"
>
<Button
@
click=
"modalCheckOk = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkOk"
>
确定
</Button>
</div>
</Modal>
<!-- 订单审里通过form -->
<!-- 订单审里通过form -->
<Modal
v-model=
"modalCheckOk1"
title=
"协调单审理"
width=
"800"
:scrollable=
"true"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
>
<Row>
<FormItem
label=
"协调结果"
>
<textarea
v-model=
"formMyCheck.coordinate_results"
style=
"width: 600px"
></textarea>
</FormItem>
</Row>
<Row>
<FormItem
label=
"在制品处理意见"
>
<textarea
v-model=
"formMyCheck.handling_suggestion"
style=
"width: 600px"
></textarea>
</FormItem>
</Row>
<Row>
<FormItem
label=
"是否更改设计文件"
>
<Select
v-model=
"formMyCheck.change_design_file"
placeholder=
"请选择"
style=
"width:225px;"
>
<Option
value=
"是"
>
是
</Option>
<Option
value=
"否"
>
否
</Option>
</Select>
</FormItem>
</Row>
<Row>
<FormItem
label=
"是否更改工艺文件"
>
<Select
v-model=
"formMyCheck.change_process_file"
placeholder=
"请选择"
style=
"width:225px;"
>
<Option
value=
"是"
>
是
</Option>
<Option
value=
"否"
>
否
</Option>
</Select>
</FormItem>
</Row>
<Row>
<FormItem
label=
"是否编写临时工艺"
>
<Select
v-model=
"formMyCheck.compilation_temporary_process"
placeholder=
"请选择"
style=
"width:225px;"
>
<Option
value=
"是"
>
是
</Option>
<Option
value=
"否"
>
否
</Option>
</Select>
</FormItem>
</Row>
</Form>
<div
slot=
"footer"
v-show=
"footerStatue === true"
>
<Button
@
click=
"modalCheckOk1 = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkOk"
>
确定
</Button>
</div>
<Form
:model=
"formMyCheck"
:label-width=
"100"
>
<Row>
<FormItem
label=
"协调结果"
>
<textarea
v-model=
"formMyCheck.coordinate_results"
style=
"width: 600px"
></textarea>
</FormItem>
</Row>
<Row>
<FormItem
label=
"在制品处理意见"
>
<textarea
v-model=
"formMyCheck.handling_suggestion"
style=
"width: 600px"
></textarea>
</FormItem>
</Row>
<Row>
<FormItem
label=
"是否更改设计文件"
>
<Select
v-model=
"formMyCheck.change_design_file"
placeholder=
"请选择"
style=
"width:225px;"
>
<Option
value=
"是"
>
是
</Option>
<Option
value=
"否"
>
否
</Option>
</Select>
</FormItem>
</Row>
<Row>
<FormItem
label=
"是否更改工艺文件"
>
<Select
v-model=
"formMyCheck.change_process_file"
placeholder=
"请选择"
style=
"width:225px;"
>
<Option
value=
"是"
>
是
</Option>
<Option
value=
"否"
>
否
</Option>
</Select>
</FormItem>
</Row>
<Row>
<FormItem
label=
"是否编写临时工艺"
>
<Select
v-model=
"formMyCheck.compilation_temporary_process"
placeholder=
"请选择"
style=
"width:225px;"
>
<Option
value=
"是"
>
是
</Option>
<Option
value=
"否"
>
否
</Option>
</Select>
</FormItem>
</Row>
</Form>
<div
slot=
"footer"
v-show=
"footerStatue === true"
>
<Button
@
click=
"modalCheckOk1 = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkOk"
>
确定
</Button>
</div>
</Modal>
<Modal
v-model=
"modalCheckNo"
title=
"订单审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此订单审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此订单审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
'../api'
import
Detail
from
'./detail'
import
Process
from
'../process'
export
default
{
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
coordinate_results
:
''
,
handling_suggestion
:
''
,
change_design_file
:
''
,
change_process_file
:
''
,
close_situation
:
''
,
compilation_temporary_process
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
''
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckOk1
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
footerStatue
:
true
,
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[
{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}
],
comment
:
[
{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}
]
}
}
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
console
.
log
(
this
.
footerStatu
)
this
.
getDetailInfos
(
this
.
detailId
)
},
methods
:
{
nextCheckOk
()
{
console
.
log
(
this
.
currentNodeID
)
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
if
(
this
.
currentNodeID
==
165
)
{
this
.
footerStatue
=
true
this
.
modalCheckOk
=
true
}
else
if
(
this
.
currentNodeID
==
163
)
{
this
.
footerStatue
=
true
this
.
modalCheckOk1
=
true
}
else
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'通过'
}
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{
}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{
}
})
}
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
var
param
=
{
// id: this.passId,
// comment: '',
// nextOperationIdList: this.nextNodeUserIdList,
// data: {}
}
if
(
this
.
currentNodeID
==
165
)
{
if
(
!
this
.
formMyCheck
.
close_situation
)
{
this
.
$Message
.
error
(
'请填写闭环情况'
)
return
}
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{
close_situation
:
this
.
formMyCheck
.
close_situation
}
}
}
else
if
(
this
.
currentNodeID
==
163
)
{
if
(
!
this
.
formMyCheck
.
coordinate_results
)
{
this
.
$Message
.
error
(
'请填写协调结果'
)
return
}
if
(
!
this
.
formMyCheck
.
handling_suggestion
)
{
this
.
$Message
.
error
(
'请填写在制品处理意见'
)
return
}
if
(
!
this
.
formMyCheck
.
change_design_file
)
{
this
.
$Message
.
error
(
'请选择是否更改设计文件'
)
return
}
if
(
!
this
.
formMyCheck
.
change_process_file
)
{
this
.
$Message
.
error
(
'请选择是否更改工艺文件'
)
return
}
if
(
!
this
.
formMyCheck
.
compilation_temporary_process
)
{
this
.
$Message
.
error
(
'请选择是否编写临时工艺'
)
return
}
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{
coordinate_results
:
this
.
formMyCheck
.
coordinate_results
,
handling_suggestion
:
this
.
formMyCheck
.
handling_suggestion
,
change_design_file
:
this
.
formMyCheck
.
change_design_file
,
change_process_file
:
this
.
formMyCheck
.
change_process_file
,
compilation_temporary_process
:
this
.
formMyCheck
.
compilation_temporary_process
}
}
}
else
{
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
}
console
.
log
(
param
)
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
footerStatu
=
3
this
.
modalCheckNo
=
false
this
.
modalCheckOk
=
false
this
.
modalCheckOk1
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckNo
=
false
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
coordinate_results
:
''
,
handling_suggestion
:
''
,
change_design_file
:
''
,
change_process_file
:
''
,
close_situation
:
''
,
compilation_temporary_process
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
''
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckOk1
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
footerStatue
:
true
,
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}],
comment
:
[{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}]
}
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
console
.
log
(
this
.
footerStatu
)
this
.
getDetailInfos
(
this
.
detailId
)
},
show
(
a
){
console
.
log
(
a
)
this
.
footerStatue
=
false
let
contextDate
=
JSON
.
parse
(
a
.
contextData
)
this
.
formMyCheck
=
contextDate
if
(
a
.
nodeId
==
163
)
{
this
.
modalCheckOk1
=
true
}
else
if
(
a
.
nodeId
==
165
)
{
this
.
modalCheckOk
=
true
}
methods
:
{
nextCheckOk
()
{
console
.
log
(
this
.
currentNodeID
)
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
if
(
this
.
currentNodeID
==
165
)
{
this
.
footerStatue
=
true
this
.
modalCheckOk
=
true
}
else
if
(
this
.
currentNodeID
==
163
)
{
this
.
footerStatue
=
true
this
.
modalCheckOk1
=
true
}
else
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'通过'
}
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{}
})
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
var
param
=
{
// id: this.passId,
// comment: '',
// nextOperationIdList: this.nextNodeUserIdList,
// data: {}
}
if
(
this
.
currentNodeID
==
165
)
{
if
(
!
this
.
formMyCheck
.
close_situation
)
{
this
.
$Message
.
error
(
'请填写闭环情况'
)
return
}
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{
close_situation
:
this
.
formMyCheck
.
close_situation
}
}
}
else
if
(
this
.
currentNodeID
==
163
)
{
if
(
!
this
.
formMyCheck
.
coordinate_results
)
{
this
.
$Message
.
error
(
'请填写协调结果'
)
return
}
if
(
!
this
.
formMyCheck
.
handling_suggestion
)
{
this
.
$Message
.
error
(
'请填写在制品处理意见'
)
return
}
if
(
!
this
.
formMyCheck
.
change_design_file
)
{
this
.
$Message
.
error
(
'请选择是否更改设计文件'
)
return
}
if
(
!
this
.
formMyCheck
.
change_process_file
)
{
this
.
$Message
.
error
(
'请选择是否更改工艺文件'
)
return
}
if
(
!
this
.
formMyCheck
.
compilation_temporary_process
)
{
this
.
$Message
.
error
(
'请选择是否编写临时工艺'
)
return
}
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{
coordinate_results
:
this
.
formMyCheck
.
coordinate_results
,
handling_suggestion
:
this
.
formMyCheck
.
handling_suggestion
,
change_design_file
:
this
.
formMyCheck
.
change_design_file
,
change_process_file
:
this
.
formMyCheck
.
change_process_file
,
compilation_temporary_process
:
this
.
formMyCheck
.
compilation_temporary_process
}
}
}
else
{
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
}
console
.
log
(
param
)
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
this
.
modalCheckNo
=
false
this
.
modalCheckOk
=
false
this
.
modalCheckOk1
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckNo
=
false
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
footerStatu
=
3
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
},
show
(
a
)
{
console
.
log
(
a
)
this
.
footerStatue
=
false
let
contextDate
=
JSON
.
parse
(
a
.
contextData
)
this
.
formMyCheck
=
contextDate
if
(
a
.
nodeId
==
163
)
{
this
.
modalCheckOk1
=
true
}
else
if
(
a
.
nodeId
==
165
)
{
this
.
modalCheckOk
=
true
}
},
},
},
watch
:
{}
watch
:
{}
}
</
script
>
pages/handle/examine9/index.vue
View file @
4c9c39af
<
template
>
<div
style=
"padding:30px 0"
>
<div
style=
"padding:30px 0"
>
<Detail
:idVal=
"detailId"
/>
<Process
ref=
"userProcess"
:idVal=
"detailId"
:resulstInfo=
"testObj"
/>
<div
class=
"footers"
v-if=
"footerStatu === '2'"
style=
"text-align:left;"
>
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
<Form
:model=
"formMyCheck"
:label-width=
"100"
:rules=
"ruleValidate"
inline
ref=
"formValidate"
>
<Row>
<Col
span=
"18"
>
<FormItem
label=
"审批意见:"
>
<RadioGroup
v-model=
"formMyCheck.radioSp"
style=
"width:200px"
>
<Radio
label=
"通过"
></Radio>
<Radio
label=
"驳回"
></Radio>
<Radio
label=
"终止"
></Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"驳回节点:"
v-if=
"formMyCheck.radioSp === '驳回'"
prop=
"rejectToNodeId"
>
<Select
style=
"width:200px"
clearable
transfer
placeholder=
"请选择驳回节点"
v-model=
"formMyCheck.rejectToNodeId"
>
<Option
value
class=
"option-text"
>
请选择驳回节点
</Option>
<Option
v-for=
"(item, index) in nodeList"
:value=
"item.value"
:label=
"item.label"
:key=
"index"
:disabled=
"item.statu > 0 ? false : true"
></Option>
</Select>
<RadioGroup
type=
"button"
size=
"small"
@
on-change=
"changeToNode"
>
<Radio
label=
"1"
>
上一节点
</Radio>
<Radio
label=
"2"
>
第一节点
</Radio>
</RadioGroup>
</FormItem>
<FormItem
label=
"原因:"
v-if=
"
formMyCheck.radioSp === '驳回' || formMyCheck.radioSp === '终止'
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
"
prop=
"comment"
>
<Input
v-model=
"formMyCheck.comment"
style=
"width:400px;margin-left:10px"
placeholder=
"请输入原因"
/>
</FormItem>
</Col>
<Col
span=
"6"
style=
"text-align:right;padding-right:40px"
>
<Button
type=
"primary"
@
click=
"nextCheckOk"
>
下一步
</Button>
</Col>
</Row>
</Form>
</div>
<Modal
v-model=
"modalCheckNo"
title=
"合格证审批"
width=
"800"
:scrollable=
"true"
>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此合格证审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
<br
/>
<h4>
您确定
<span
class=
"new-red"
>
{{
statuTitle
}}
</span>
此合格证审批?
</h4>
<br
/>
<div
slot=
"footer"
>
<Button
@
click=
"modalCheckNo = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"checkFalse"
>
确定
</Button>
</div>
</Modal>
</div>
</div>
</
template
>
<
script
>
import
Api
from
'../api'
import
Detail
from
'./detail'
import
Process
from
'../process'
export
default
{
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[
{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}
],
comment
:
[
{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}
]
}
}
},
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{
}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{
}
})
}
layout
:
'empty'
,
name
:
'Index'
,
components
:
{
Detail
,
Process
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
data
()
{
return
{
currentUserId
:
0
,
formMyCheck
:
{
radioSp
:
'通过'
,
comment
:
''
,
workHours
:
0
,
//工时
printPeriod
:
0
,
//打印周期
equipment
:
''
,
//设备
materialWeight
:
0
,
//材料重量
rejectToNodeId
:
null
},
modalCheckOk
:
false
,
modalCheckNo
:
false
,
detailId
:
null
,
statuTitle
:
''
,
footerStatu
:
null
,
//是否显示footer
getDetailResults
:
[],
//getdetail返回数据
getDetailResultOrder
:
[],
//getdetail返回订单detail数据
getDetailProcess
:
[],
//getdetail返回process信息
getDetailRecords
:
[],
//getdetail返回当前records信息
passId
:
null
,
//通过审批/驳回/终止接口 id,
nodeList
:
[],
//返回节点
currentNodeID
:
null
,
//当前节点
firstNodeID
:
null
,
//第一个节点
preNodeID
:
null
,
//上一个节点
nextNodeUserIdList
:
[],
//通过时提交的下一个节点UserId
testObj
:
{},
ruleValidate
:
{
rejectToNodeId
:
[{
required
:
true
,
message
:
'请选择驳回节点'
,
type
:
'number'
,
trigger
:
'change'
}],
comment
:
[{
required
:
true
,
message
:
'请输入原因'
,
trigger
:
'blur'
}]
}
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckNo
=
false
props
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
detailId
=
this
.
$http
.
common
.
getquerystring
(
'id'
)
this
.
footerStatu
=
this
.
$http
.
common
.
getquerystring
(
'statu'
)
this
.
getDetailInfos
(
this
.
detailId
)
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
methods
:
{
nextCheckOk
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
modalCheckNo
=
true
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'驳回'
}
else
{}
})
}
else
{
this
.
$refs
[
'formValidate'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
modalCheckNo
=
true
this
.
statuTitle
=
'终止'
}
else
{}
})
}
},
getDetailInfos
(
idVal
)
{
this
.
getDetailRecords
=
[]
let
param
=
{
Id
:
idVal
}
Api
.
getdetail
(
param
).
then
((
r
)
=>
{
this
.
testObj
=
r
if
(
r
.
success
)
{
this
.
currentNodeID
=
r
.
result
.
currentNodeId
this
.
passId
=
r
.
result
.
currentRecordId
this
.
nextNodeUserIdList
=
this
.
$refs
.
userProcess
.
immutData
//获取下一节点的审核人
this
.
getNodes
(
r
.
result
.
nodes
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
},
//获取流程节点
getNodes
(
nodes
)
{
this
.
nodeList
=
[]
nodes
.
forEach
((
data
)
=>
{
let
nodeObj
=
{}
nodeObj
.
value
=
data
.
id
nodeObj
.
label
=
data
.
name
nodeObj
.
statu
=
1
this
.
nodeList
.
push
(
nodeObj
)
})
//第一节点node的ID
this
.
firstNodeID
=
this
.
nodeList
[
0
].
value
//根据当前nodeid找到上一节点的nodeId
var
index
=
this
.
nodeList
.
findIndex
(
(
item
)
=>
item
.
value
==
this
.
currentNodeID
)
if
(
index
>
0
)
{
this
.
preNodeID
=
this
.
nodeList
[
index
-
1
].
value
}
else
{
this
.
preNodeID
=
this
.
nodeList
[
0
].
value
}
},
changeToNode
(
val
)
{
if
(
val
==
'1'
)
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
preNodeID
}
else
{
this
.
formMyCheck
.
rejectToNodeId
=
this
.
firstNodeID
}
},
//审批通过
checkOk
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
''
,
nextOperationIdList
:
this
.
nextNodeUserIdList
,
data
:
{}
}
// alert(JSON.stringify(param))
Api
.
pass
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'审批通过成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
this
.
modalCheckNo
=
false
}
else
{
this
.
$Message
.
error
(
'审批通过失败'
)
}
})
this
.
modalCheckNo
=
false
},
//审批驳回
checkNo
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
,
rejectToNodeId
:
this
.
formMyCheck
.
rejectToNodeId
}
// alert(JSON.stringify(param))
Api
.
reject
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'驳回审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//审批终止
checkCancel
()
{
// alert(this.passId)
let
param
=
{
id
:
this
.
passId
,
comment
:
this
.
formMyCheck
.
comment
}
//alert(JSON.stringify(param))
Api
.
terminate
(
param
).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'终止审批成功'
)
this
.
$refs
.
userProcess
.
load
(
this
.
detailId
)
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
this
.
modalCheckNo
=
false
})
},
//终止或驳回
checkFalse
()
{
if
(
this
.
formMyCheck
.
radioSp
==
'驳回'
)
{
this
.
checkNo
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'终止'
)
{
this
.
checkCancel
()
}
else
if
(
this
.
formMyCheck
.
radioSp
==
'通过'
)
{
this
.
checkOk
()
}
this
.
footerStatu
=
3
},
l
(
key
)
{
key
=
'MaterialPlacode'
+
'.'
+
key
return
this
.
$t
(
key
)
}
},
watch
:
{}
watch
:
{}
}
</
script
>
pages/handle/process.vue
View file @
4c9c39af
<
style
lang=
"less"
scope
>
<
style
lang=
"less"
>
@import "./shen.less";
</
style
>
<
template
>
<div
class=
"Design"
>
<div
class=
"Design"
>
<h3>
{{
processTitle
}}
</h3>
<Divider
/>
<Timeline>
<TimelineItem
v-for=
"(item, index) in dataImmut"
:key=
"index"
>
<Badge
:count=
"index + 1"
slot=
"dot"
:type=
"type(index)"
></Badge>
<p
class=
"title"
>
<state
code=
"workflow.record.status"
:value=
"item.status"
type=
"tag"
/>
{{
item
.
name
}}
(
<state
code=
"workflow.form.audit.type"
:value=
"item.operation"
/>
)
<Icon
v-if=
"item.isFixed"
title=
"固定"
type=
"ios-lock"
/>
</p>
<div
class=
"content"
>
<!--
<div
class=
"records"
v-if=
"index==cur"
>
<TimelineItem
v-for=
"(item, index) in dataImmut"
:key=
"index"
>
<Badge
:count=
"index + 1"
slot=
"dot"
:type=
"type(index)"
></Badge>
<p
class=
"title"
>
<state
code=
"workflow.record.status"
:value=
"item.status"
type=
"tag"
/>
{{
item
.
name
}}
(
<state
code=
"workflow.form.audit.type"
:value=
"item.operation"
/>
)
<Icon
v-if=
"item.isFixed"
title=
"固定"
type=
"ios-lock"
/>
</p>
<div
class=
"content"
>
<!--
<div
class=
"records"
v-if=
"index==cur"
>
<span>
审批人:
</span>
<User
v-for=
"(item3, index3) in item.records"
...
...
@@ -24,186 +24,189 @@
class=
"mr5"
/>
</div>
-->
<div
v-if=
"index>cur"
>
<CheckboxGroup
v-model=
"immutData"
>
<span>
审批人:
</span>
<Checkbox
v-for=
"(item1, index1) in item.defaultUsers.immutable"
:key=
"index1"
:label=
"item1"
:disabled=
"item.isFixed"
>
<User
:value=
"item1"
style=
"margin-right:5px;"
/>
</Checkbox>
</CheckboxGroup>
</div>
<div
class=
"wait"
v-else
>
<span>
审批人:
</span>
<User
v-for=
"(item2, index2) in item.defaultUsers.immutable"
:key=
"index2"
:value=
"item2"
class=
"mr5"
/>
</div>
<div
style=
"width:98%"
v-if=
"com(item.records).length>0"
>
<!--
<Table
:columns=
"columns"
border
size=
"small"
width=
"90%"
:data=
"com(item.records)"
></Table>
-->
<p
class=
"shen_row"
v-for=
"(item3, index3) in item.records"
:key=
"index3"
:value=
"item3"
>
<User
class=
"user_span"
:value=
"item3.operatorId"
/>
<span
class=
"plr row_time"
>
{{
item3
.
operationTime
}}
</span>
<state
code=
"workflow.record.status"
class=
"row_statu"
:value=
"item3.status"
type=
"text"
></state>
<span
class=
"plr remark"
v-if=
"item3.remark"
>
{{
item3
.
remark
}}
</span>
<a
class=
"plr row_ditill"
v-if=
"item3.contextData"
@
click=
"edit(item3)"
>
详情
</a>
<!--
<span>
{{
item3
.
contextData
}}
</span>
-->
</p>
</div>
</div>
</TimelineItem>
<div
v-if=
"index>cur"
>
<CheckboxGroup
v-model=
"immutData"
>
<span>
审批人:
</span>
<Checkbox
v-for=
"(item1, index1) in item.defaultUsers.immutable"
:key=
"index1"
:label=
"item1"
:disabled=
"item.isFixed"
>
<User
:value=
"item1"
style=
"margin-right:5px;"
/>
</Checkbox>
</CheckboxGroup>
</div>
<div
class=
"wait"
v-else
>
<span>
审批人:
</span>
<User
v-for=
"(item2, index2) in item.defaultUsers.immutable"
:key=
"index2"
:value=
"item2"
class=
"mr5"
/>
</div>
<div
style=
"width:98%"
v-if=
"com(item.records).length>0"
>
<!--
<Table
:columns=
"columns"
border
size=
"small"
width=
"90%"
:data=
"com(item.records)"
></Table>
-->
<p
class=
"shen_row"
v-for=
"(item3, index3) in item.records"
:key=
"index3"
:value=
"item3"
>
<User
class=
"user_span"
:value=
"item3.operatorId"
/>
<span
class=
"plr row_time"
>
{{
item3
.
operationTime
}}
</span>
<state
code=
"workflow.record.status"
class=
"row_statu"
:value=
"item3.status"
type=
"text"
></state>
<span
class=
"plr remark"
v-if=
"item3.remark"
>
{{
item3
.
remark
}}
</span>
<a
class=
"plr row_ditill"
v-if=
"item3.contextData"
@
click=
"edit(item3)"
>
详情
</a>
<!--
<span>
{{
item3
.
contextData
}}
</span>
-->
</p>
</div>
</div>
</TimelineItem>
</Timeline>
</div>
</div>
</
template
>
<
script
>
import
Api
from
'./api'
export
default
{
name
:
'process'
,
components
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
data
()
{
return
{
currentUserId
:
0
,
processTitle
:
'审批流程'
,
currentNodeId
:
null
,
dataImmut
:
[],
creatRows
:
[],
cur
:
0
,
columns
:
[
{
key
:
'status'
,
title
:
'结果'
,
align
:
'left'
,
width
:
100
,
render
:
(
h
,
params
)
=>
{
return
h
(
'state'
,
{
attrs
:
{
value
:
params
.
row
.
status
,
code
:
'workflow.record.status'
}
name
:
'process'
,
components
:
{},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
},
data
()
{
return
{
currentUserId
:
0
,
processTitle
:
'审批流程'
,
currentNodeId
:
null
,
dataImmut
:
[],
creatRows
:
[],
cur
:
0
,
columns
:
[{
key
:
'status'
,
title
:
'结果'
,
align
:
'left'
,
width
:
100
,
render
:
(
h
,
params
)
=>
{
return
h
(
'state'
,
{
attrs
:
{
value
:
params
.
row
.
status
,
code
:
'workflow.record.status'
}
})
}
},
{
key
:
'operatorId'
,
title
:
'操作人'
,
align
:
'left'
,
width
:
100
,
easy
:
true
,
high
:
true
,
render
:
(
h
,
params
)
=>
{
return
h
(
'User'
,
{
attrs
:
{
value
:
params
.
row
.
operatorId
}
})
}
},
{
title
:
'时间'
,
key
:
'operationTime'
,
width
:
200
,
align
:
'center'
},
{
title
:
'备注'
,
key
:
'remark'
,
align
:
'center'
},
{
key
:
'contextData'
,
title
:
'详细'
,
width
:
100
,
align
:
'left'
,
render
:
(
h
,
params
)
=>
{
if
(
params
.
row
.
contextData
.
length
>
2
)
return
h
(
'a'
,
{
on
:
{
click
:
()
=>
this
.
edit
(
params
.
row
)
}
},
'详情'
)
return
h
(
'span'
,
''
)
}
}
],
dataMut
:
[],
immutData
:
[],
schemaId
:
''
}
},
props
:
{
idVal
:
{
type
:
String
,
default
:
''
}
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
dataImmut
=
[]
this
.
dataMut
=
[]
this
.
load
(
this
.
idVal
)
},
methods
:
{
load
(
v
)
{
Api
.
getdetail
({
Id
:
v
}).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
dataImmut
=
r
.
result
.
nodes
this
.
currentNodeId
=
r
.
result
.
currentNodeId
let
idUser
=
[]
r
.
result
.
nodes
.
map
((
u
,
i
)
=>
{
//查找当前节点索引
if
(
u
.
id
==
this
.
currentNodeId
)
{
this
.
cur
=
i
};
// if(u.defaultUsers.mutable&&u.defaultUsers.mutable.length>0){
// u.defaultUsers.immutable=u.defaultUsers.immutable.concat(u.defaultUsers.mutable)
u
.
defaultUsers
.
immutable
=
u
.
defaultUsers
.
immutable
||
(
u
.
defaultUsers
.
mutable
)
//审核人员bug
// }
})
if
(
this
.
dataImmut
.
length
>
this
.
cur
+
1
)
{
// console.log("this.dataImmut[this.cur + 1]:",this.dataImmut[this.cur + 1],this.cur,this.dataImmut.length )
this
.
immutData
=
this
.
dataImmut
[
this
.
cur
+
1
].
defaultUsers
.
immutable
||
(
this
.
dataImmut
[
this
.
cur
+
1
].
defaultUsers
.
mutable
)
//审核人员bug
}
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
}
},
{
key
:
'operatorId'
,
title
:
'操作人'
,
align
:
'left'
,
width
:
100
,
easy
:
true
,
high
:
true
,
render
:
(
h
,
params
)
=>
{
return
h
(
'User'
,
{
attrs
:
{
value
:
params
.
row
.
operatorId
}
})
}
type
(
i
)
{
if
(
i
<
this
.
cur
)
{
return
'primary'
}
else
if
(
i
==
this
.
cur
)
{
return
'info'
}
else
if
(
i
==
this
.
cur
+
1
)
{
return
'warning'
}
else
{
return
'normal'
}
},
{
title
:
'时间'
,
key
:
'operationTime'
,
width
:
200
,
align
:
'center'
edit
(
record
)
{
// alert(record.id)
this
.
$emit
(
'node-click'
,
record
)
console
.
log
(
record
)
},
{
title
:
'备注'
,
key
:
'remark'
,
align
:
'center'
com
(
items
)
{
if
(
items
)
return
items
.
filter
((
u
)
=>
{
return
[
2
,
3
,
5
,
6
].
indexOf
(
u
.
status
)
>
-
1
})
else
return
[];
},
{
key
:
'contextData'
,
title
:
'详细'
,
width
:
100
,
align
:
'left'
,
render
:
(
h
,
params
)
=>
{
if
(
params
.
row
.
contextData
.
length
>
2
)
return
h
(
'a'
,
{
on
:
{
click
:
()
=>
this
.
edit
(
params
.
row
)
}
},
'详情'
)
return
h
(
'span'
,
''
)
}
l
(
key
)
{
key
=
'orderInfo'
+
'.'
+
key
return
this
.
$t
(
key
)
}
],
dataMut
:
[],
immutData
:
[],
schemaId
:
''
}
},
props
:
{
idVal
:
{
type
:
String
,
default
:
''
}
},
created
()
{
this
.
currentUserId
=
this
.
$store
.
state
.
userInfo
.
userId
this
.
dataImmut
=
[]
this
.
dataMut
=
[]
Api
.
getdetail
({
Id
:
this
.
idVal
}).
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
dataImmut
=
r
.
result
.
nodes
this
.
currentNodeId
=
r
.
result
.
currentNodeId
let
idUser
=
[]
r
.
result
.
nodes
.
map
((
u
,
i
)
=>
{
//查找当前节点索引
if
(
u
.
id
==
this
.
currentNodeId
)
{
this
.
cur
=
i
};
// if(u.defaultUsers.mutable&&u.defaultUsers.mutable.length>0){
// u.defaultUsers.immutable=u.defaultUsers.immutable.concat(u.defaultUsers.mutable)
u
.
defaultUsers
.
immutable
=
u
.
defaultUsers
.
immutable
||
(
u
.
defaultUsers
.
mutable
)
//审核人员bug
// }
})
if
(
this
.
dataImmut
.
length
>
this
.
cur
+
1
)
{
// console.log("this.dataImmut[this.cur + 1]:",this.dataImmut[this.cur + 1],this.cur,this.dataImmut.length )
this
.
immutData
=
this
.
dataImmut
[
this
.
cur
+
1
].
defaultUsers
.
immutable
||
(
this
.
dataImmut
[
this
.
cur
+
1
].
defaultUsers
.
mutable
)
//审核人员bug
}
}
else
{
this
.
$Message
.
error
(
'加载失败'
)
}
})
},
methods
:
{
load
(
v
)
{},
type
(
i
)
{
if
(
i
<
this
.
cur
)
{
return
'primary'
}
else
if
(
i
==
this
.
cur
)
{
return
'info'
}
else
if
(
i
==
this
.
cur
+
1
)
{
return
'warning'
}
else
{
return
'normal'
}
},
edit
(
record
)
{
// alert(record.id)
this
.
$emit
(
'node-click'
,
record
)
console
.
log
(
record
)
},
com
(
items
)
{
if
(
items
)
return
items
.
filter
((
u
)
=>
{
return
[
2
,
3
,
5
,
6
].
indexOf
(
u
.
status
)
>
-
1
})
else
return
[];
},
l
(
key
)
{
key
=
'orderInfo'
+
'.'
+
key
return
this
.
$t
(
key
)
}
},
computed
:
{},
watch
:
{}
computed
:
{},
watch
:
{}
}
</
script
>
\ No newline at end of file
</
script
>
pages/mesPlan/index.vue
View file @
4c9c39af
...
...
@@ -57,8 +57,9 @@
<Detail
:row=
"rowData"
/>
</Modal>
<Modal
v-model=
"splitModal"
title=
"订单分解"
width=
"1200"
>
<Split
:row=
"rowData"
ref=
"orderSplit"
/>
<Split
:row=
"rowData"
ref=
"orderSplit"
@
on-amount=
"getAmount"
/>
<div
slot=
"footer"
>
<span
class=
"pr240"
>
剩余产品数量:{{amountNew}}
</span>
<Button
@
click=
"splitModal = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"orderSplitOk"
>
确定分解
</Button>
</div>
...
...
@@ -487,7 +488,8 @@ export default {
codeList
:
[],
//订单编号List
operatorIdList
:
[]
//操作员id
},
//确定后返回数据
wfstatu
:
1
//流程是否启用1 禁用 0启用
wfstatu
:
1
,
//流程是否启用1 禁用 0启用
amountNew
:
0
,
};
},
created
()
{
...
...
@@ -575,11 +577,16 @@ export default {
split
(
row
)
{
if
(
row
.
quantity
>
1
)
{
this
.
splitModal
=
true
;
this
.
amountNew
=
row
.
quantity
this
.
rowData
=
row
;
}
else
{
this
.
$Message
.
error
(
"数量为1,不能进行分解"
);
}
},
//获取可分解剩余条数
getAmount
(
val
)
{
this
.
amountNew
=
val
},
onHide
()
{
// this.$Message.info("收起左侧树")
this
.
showMenu
=
false
;
...
...
pages/mesPlan/split.vue
View file @
4c9c39af
...
...
@@ -33,7 +33,7 @@
</Col>
<Col
span=
"12"
>
<FormItem
label=
"分解数量"
style=
"width:100%"
prop=
"splitQuantity"
>
<InputNumber
:min=
"
2
"
:max=
"orderForm.quantity"
v-model=
"orderForm.splitQuantity"
style=
"width:180px"
></InputNumber>
<InputNumber
:min=
"
1
"
:max=
"orderForm.quantity"
v-model=
"orderForm.splitQuantity"
style=
"width:180px"
></InputNumber>
<Button
type=
"primary"
@
click=
"addSplitOrder"
v-noClick
>
确定
</Button>
</FormItem>
</Col>
...
...
@@ -47,10 +47,6 @@
<DatePicker
v-model=
"row.demandDate"
type=
"daterange"
placeholder=
"请选择日期"
style=
"width:240px"
:transfer=
"true"
:options=
"optionsDate"
@
on-change=
"inputOrderCat(row,index)"
></DatePicker>
</
template
>
</Table>
<div
class=
"cellblock"
>
<p>
剩余产品数量:{{amount}}
</p>
</div>
</div>
</template>
...
...
@@ -81,14 +77,14 @@ export default {
productName
:
""
,
//产品名称
drawingNo
:
""
,
//图号
orderCat
:
""
,
//任务类型
quantity
:
""
,
//数量
quantity
:
0
,
//数量
remark
:
""
//备注
},
orderForm
:
{
mesCode
:
""
,
//订单编号
productName
:
""
,
//产品名称
stage
:
""
,
//阶段
quantity
:
""
,
//数量
quantity
:
0
,
//数量
planStartTime
:
""
,
//计划开始时间
planEndTime
:
""
,
//计划结束时间
splitQuantity
:
2
,
//分解数量
...
...
@@ -153,7 +149,7 @@ export default {
//打开modal层时给订单list赋值
//alert(JSON.stringify(data))
this
.
dataListRetrun
.
id
=
data
[
0
].
id
;
this
.
dataListRetrun
.
quantity
=
data
[
0
].
quantity
;
this
.
dataListRetrun
.
quantity
=
Number
(
data
[
0
].
quantity
)
;
this
.
dataListRetrun
.
mesCode
=
data
[
0
].
mesCode
;
this
.
orderInfo
=
[];
this
.
dataList
=
[];
...
...
@@ -162,7 +158,7 @@ export default {
mesCode
:
this
.
orderInfo
.
mesCode
,
//订单编号
productName
:
this
.
orderInfo
.
productName
,
//产品名称
stage
:
this
.
orderInfo
.
stage
,
//阶段
quantity
:
this
.
orderInfo
.
quantity
,
//数量
quantity
:
Number
(
this
.
orderInfo
.
quantity
)
,
//数量
planStartTime
:
this
.
orderInfo
.
demandStartDate
,
//计划开始时间
planEndTime
:
this
.
orderInfo
.
demandFinishDate
,
//计划结束时间
splitQuantity
:
2
,
//分解数量
...
...
@@ -190,7 +186,7 @@ export default {
this
.
dataList
.
push
({
mesCode
:
i
+
1
<
10
?
mesCodeSon
+
"0"
+
(
i
+
1
)
:
mesCodeSon
+
""
+
(
i
+
1
),
quantity
:
""
,
quantity
:
0
,
demandDate
:
[
planStartTime
,
planEndTime
],
demandStartDate
:
planStartTime
,
demandFinishDate
:
planEndTime
...
...
@@ -209,7 +205,7 @@ export default {
let
forDemandStartDate
=
this
.
getFormatDate
(
row
.
demandDate
[
0
]);
let
forDemandFinishDate
=
this
.
getFormatDate
(
row
.
demandDate
[
1
]);
this
.
dataListRetrun
.
items
[
index
].
mesCode
=
row
.
mesCode
;
this
.
dataListRetrun
.
items
[
index
].
quantity
=
row
.
quantity
;
this
.
dataListRetrun
.
items
[
index
].
quantity
=
Number
(
row
.
quantity
)
;
this
.
dataListRetrun
.
items
[
index
].
demandStartDate
=
forDemandStartDate
;
this
.
dataListRetrun
.
items
[
index
].
demandFinishDate
=
forDemandFinishDate
;
this
.
dataList
[
index
].
demandDate
=
[
...
...
@@ -220,10 +216,11 @@ export default {
this
.
dataList
.
forEach
(
el
=>
{
splitAmount
=
Number
(
splitAmount
)
+
Number
(
el
.
quantity
)
})
this
.
amount
=
this
.
orderForm
.
quantity
-
splitAmount
this
.
amount
=
Number
(
this
.
orderForm
.
quantity
)
-
splitAmount
this
.
$emit
(
"on-amount"
,
this
.
amount
);
},
inputFocus
(
row
,
index
)
{
this
.
amountMax
=
this
.
amount
+
row
.
quantity
this
.
amountMax
=
this
.
amount
+
Number
(
row
.
quantity
)
},
getFormatDate
(
dates
)
{
const
d
=
new
Date
(
dates
);
...
...
@@ -259,7 +256,7 @@ export default {
mesCode
:
this
.
orderInfo
.
mesCode
,
//订单编号
productName
:
""
,
//产品名称
stage
:
""
,
//阶段
quantity
:
""
,
//数量
quantity
:
0
,
//数量
planStartTime
:
""
,
//计划开始时间
planEndTime
:
""
,
//计划结束时间
splitQuantity
:
2
,
//分解数量
...
...
@@ -275,11 +272,11 @@ export default {
this
.
orderForm
.
planEndTime
=
this
.
orderForm
.
demandFinishDate
;
//this.orderForm.splitQuantity = 2;
this
.
dataListRetrun
.
id
=
this
.
orderForm
.
id
;
this
.
dataListRetrun
.
quantity
=
this
.
orderForm
.
quantity
;
this
.
dataListRetrun
.
quantity
=
Number
(
this
.
orderForm
.
quantity
)
;
this
.
dataListRetrun
.
mesCode
=
this
.
orderForm
.
mesCode
;
this
.
dataList
=
[]
this
.
amount
=
this
.
orderForm
.
quantity
this
.
amount
=
Number
(
this
.
orderForm
.
quantity
)
}
}
}
...
...
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