Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
ferry_web
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jianan
ferry_web
Commits
c4d51c41
Commit
c4d51c41
authored
Jun 10, 2025
by
yuzhenWang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加返回按钮,接受scrm参数
parent
9ca75b12
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
145 additions
and
90 deletions
+145
-90
src/permission.js
+19
-8
src/store/modules/user.js
+8
-7
src/views/process/list/create.vue
+11
-0
src/views/process/list/handle.vue
+107
-75
No files found.
src/permission.js
View file @
c4d51c41
...
...
@@ -12,10 +12,12 @@ store.dispatch('settings/getSystemSettings')
const
whiteList
=
[
'/login'
,
'/auth-redirect'
,
'/process/all'
,
'/process/my-create'
,
'/process/upcoming'
,
'/process/apply-process-list'
'/process/all'
,
// 所有工单
'/process/my-create'
,
// 我创建的
'/process/upcoming'
,
// 我的代办
'/process/apply-process-list'
,
// 工单申请
'/process/related'
,
// 相关工单
'/process/handle-ticket'
// 处理工单
]
// no redirect whitelist
router
.
beforeEach
(
async
(
to
,
from
,
next
)
=>
{
...
...
@@ -32,17 +34,26 @@ router.beforeEach(async(to, from, next) => {
}
return
null
}
const
token
=
getQueryParam
(
'token'
)
const
token
=
getQueryParam
(
'token'
)
// 获取scrm带过来的参数
// 从scrm跳转过来时,是否隐藏侧边栏 1:隐藏侧边栏 2:隐藏返回键
const
hiddenSidler
=
getQueryParam
(
'hiddenSidler'
)
// 使用你的 getQueryParam 方法获取参数
const
scrmParamsStr
=
decodeURIComponent
(
getQueryParam
(
'scrmParams'
))
if
(
token
)
{
removeToken
()
store
.
dispatch
(
'user/setToken'
,
token
)
store
.
dispatch
(
'user/setHiddenSidler'
,
hiddenSidler
)
// 解析成对象
if
(
scrmParamsStr
)
{
try
{
const
scrmParams
=
JSON
.
parse
(
scrmParamsStr
)
store
.
dispatch
(
'user/setScrmParams'
,
scrmParams
)
}
catch
(
e
)
{
console
.
error
(
'解析失败'
,
e
)
}
}
setToken
(
token
)
}
// const newhiddenSidler = store.state.user.hiddenSidler
// console.log(newhiddenSidler)
// start progress bar
NProgress
.
start
()
...
...
src/store/modules/user.js
View file @
c4d51c41
...
...
@@ -9,7 +9,8 @@ const state = {
introduction
:
''
,
roles
:
[],
permissions
:
[],
hiddenSidler
:
''
hiddenSidler
:
''
,
// 是否隐藏侧边栏
scrmParams
:
{
showBack
:
true
}
// scrm系统跳转所带参数
}
const
mutations
=
{
...
...
@@ -40,6 +41,9 @@ const mutations = {
},
SET_hiddenSidler
:
(
state
,
hiddenSidler
)
=>
{
state
.
hiddenSidler
=
hiddenSidler
},
SET_scrmParams
:
(
state
,
scrmParams
)
=>
{
state
.
scrmParams
=
scrmParams
}
}
...
...
@@ -65,18 +69,15 @@ const actions = {
setHiddenSidler
({
commit
},
hiddenSidler
)
{
commit
(
'SET_hiddenSidler'
,
hiddenSidler
)
},
setScrmParams
({
commit
},
scrmParams
)
{
commit
(
'SET_scrmParams'
,
scrmParams
)
},
// get user info
getInfo
({
commit
,
state
})
{
console
.
log
(
'===================================='
)
console
.
log
(
'getInfo'
)
console
.
log
(
'===================================='
)
return
new
Promise
((
resolve
,
reject
)
=>
{
getInfo
()
.
then
((
response
)
=>
{
console
.
log
(
'===================================='
)
console
.
log
(
'getInfo'
,
response
)
console
.
log
(
'===================================='
)
if
(
!
response
||
!
response
.
data
)
{
commit
(
'SET_TOKEN'
,
''
)
removeToken
()
...
...
src/views/process/list/create.vue
View file @
c4d51c41
<
template
>
<div
class=
"app-container"
>
<el-button
v-if=
"scrmParams.showBack"
style=
"margin-bottom:16px;"
type=
"primary"
@
click=
"goBack"
>
返回
</el-button>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
公共信息
</span>
...
...
@@ -121,10 +124,18 @@ export default {
}
}
},
computed
:
{
scrmParams
()
{
return
this
.
$store
.
state
.
user
.
scrmParams
}
},
created
()
{
this
.
getProcessNodeList
()
},
methods
:
{
goBack
()
{
this
.
$router
.
go
(
-
1
)
},
getProcessNodeList
()
{
processStructure
({
processId
:
this
.
$route
.
query
.
processId
...
...
src/views/process/list/handle.vue
View file @
c4d51c41
...
...
@@ -2,15 +2,28 @@
<div
class=
"app-container"
>
<div
v-if=
"isLoadingStatus"
/>
<div
v-else
>
<el-button
v-if=
"scrmParams.showBack"
style=
"margin-bottom:16px;"
type=
"primary"
@
click=
"goBack"
>
返回
</el-button>
<el-card
class=
"box-card"
>
<div
class=
"text item"
>
<el-steps
v-if=
"currentNode.clazz !== undefined && currentNode.clazz !== null && currentNode.clazz !== ''"
:active=
"activeIndex"
finish-status=
"success"
>
<el-steps
v-if=
"
currentNode.clazz !== undefined &&
currentNode.clazz !== null &&
currentNode.clazz !== ''
"
:active=
"activeIndex"
finish-status=
"success"
>
<template
v-for=
"(item, index) in nodeStepList"
>
<el-step
v-if=
"item.isHideNode === false ||
item.isHideNode === undefined ||
item.isHideNode == null ||
item.id === processStructureValue.workOrder.current_state"
v-if=
"
item.isHideNode === false ||
item.isHideNode === undefined ||
item.isHideNode == null ||
item.id === processStructureValue.workOrder.current_state
"
:key=
"index"
:title=
"item.label"
/>
...
...
@@ -27,7 +40,10 @@
</el-card>
<el-alert
v-if=
"activeIndex !== nodeStepList.length && processStructureValue.workOrder.is_end===1"
v-if=
"
activeIndex !== nodeStepList.length &&
processStructureValue.workOrder.is_end === 1
"
style=
"margin-top: 15px"
:title=
"alertMessage"
type=
"error"
...
...
@@ -48,10 +64,12 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"优先级:"
style=
"margin-bottom: 0"
>
<span
v-if=
"processStructureValue.workOrder.priority
===
2"
>
<span
v-if=
"processStructureValue.workOrder.priority
===
2"
>
<el-tag
type=
"warning"
>
紧急
</el-tag>
</span>
<span
v-else-if=
"processStructureValue.workOrder.priority===3"
>
<span
v-else-if=
"processStructureValue.workOrder.priority === 3"
>
<el-tag
type=
"danger"
>
非常紧急
</el-tag>
</span>
<span
v-else
>
...
...
@@ -64,25 +82,33 @@
</div>
</el-card>
<el-card
class=
"box-card"
style=
"margin-top: 15px
;
"
>
<el-card
class=
"box-card"
style=
"margin-top: 15px"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
表单信息
</span>
</div>
<div
class=
"text item"
>
<
template
v-for=
"(tplItem, tplIndex) in processStructureValue.tpls"
>
<fm-generate-form
v-show=
"currentNode.hideTpls===undefined ||
currentNode.hideTpls===null ||
currentNode.hideTpls.indexOf(tplItem.form_structure.id)===-1"
v-show=
"
currentNode.hideTpls === undefined ||
currentNode.hideTpls === null ||
currentNode.hideTpls.indexOf(tplItem.form_structure.id) === -1
"
:key=
"tplIndex"
:ref=
"'generateForm-'+tplItem.id"
:preview=
"!!((currentNode.hideTpls!==undefined &&
currentNode.hideTpls!==null &&
currentNode.hideTpls.indexOf(tplItem.form_structure.id)!==-1) ||
(currentNode.writeTpls===undefined ||
currentNode.writeTpls===null ||
currentNode.writeTpls.indexOf(tplItem.form_structure.id)===-1)||
(isActiveProcessing && currentNode.activeOrder))"
:ref=
"'generateForm-' + tplItem.id"
:preview=
"
!!(
(currentNode.hideTpls !== undefined &&
currentNode.hideTpls !== null &&
currentNode.hideTpls.indexOf(tplItem.form_structure.id) !==
-1) ||
currentNode.writeTpls === undefined ||
currentNode.writeTpls === null ||
currentNode.writeTpls.indexOf(tplItem.form_structure.id) ===
-1 ||
(isActiveProcessing && currentNode.activeOrder)
)
"
:remote=
"remoteFunc"
:value=
"tplItem.form_data"
:data=
"tplItem.form_structure"
...
...
@@ -90,21 +116,26 @@
</
template
>
</div>
<div
v-if=
"processStructureValue.userAuthority"
>
<hr
style=
"background-color: #d9d9d9; border:0; height:1px; margin-bottom: 15px"
>
<hr
style=
"
background-color: #d9d9d9;
border: 0;
height: 1px;
margin-bottom: 15px;
"
>
<div>
<el-input
v-model=
"remarks"
type=
"textarea"
placeholder=
"请输入备注信息"
maxlength=
"200"
:autosize=
"{ minRows: 3, maxRows: 99}"
:autosize=
"{ minRows: 3, maxRows: 99
}"
show-word-limit
/>
</div>
<div
class=
"text item"
style=
"text-align: center;margin-top:18px"
>
<div
v-if=
"isActiveProcessing && currentNode.activeOrder"
>
<div
class=
"text item"
style=
"text-align: center; margin-top: 18px"
>
<div
v-if=
"isActiveProcessing && currentNode.activeOrder"
>
<el-button
v-permisaction=
"['process:list:handle:active']"
type=
"primary"
...
...
@@ -116,7 +147,10 @@
<div
v-else
>
<
template
v-for=
"(item, index) in processStructureValue.edges"
>
<el-button
v-if=
"processStructureValue.workOrder.is_end===0 && item.source===currentNode.id"
v-if=
"
processStructureValue.workOrder.is_end === 0 &&
item.source === currentNode.id
"
:key=
"index"
type=
"primary"
@
click=
"submitAction(item)"
...
...
@@ -134,31 +168,12 @@
<span>
工单流转历史
</span>
</div>
<div
class=
"text item"
>
<el-table
:data=
"circulationHistoryList"
border
style=
"width: 100%"
>
<el-table-column
prop=
"state"
label=
"节点"
/>
<el-table-column
prop=
"circulation"
label=
"流转"
/>
<el-table-column
prop=
"processor"
label=
"处理人"
/>
<el-table-column
prop=
"create_time"
label=
"处理时间"
/>
<el-table-column
prop=
"remarks"
label=
"备注"
/>
<el-table
:data=
"circulationHistoryList"
border
style=
"width: 100%"
>
<el-table-column
prop=
"state"
label=
"节点"
/>
<el-table-column
prop=
"circulation"
label=
"流转"
/>
<el-table-column
prop=
"processor"
label=
"处理人"
/>
<el-table-column
prop=
"create_time"
label=
"处理时间"
/>
<el-table-column
prop=
"remarks"
label=
"备注"
/>
</el-table>
</div>
</el-card>
...
...
@@ -168,9 +183,7 @@
<
script
>
import
Vue
from
'vue'
import
{
GenerateForm
}
from
'@/components/VueFormMaking'
import
{
GenerateForm
}
from
'@/components/VueFormMaking'
import
'form-making/dist/FormMaking.css'
Vue
.
component
(
GenerateForm
.
name
,
GenerateForm
)
...
...
@@ -231,27 +244,37 @@ export default {
}
},
computed
:
{
...
mapGetters
([
'userId'
])
scrmParams
()
{
return
this
.
$store
.
state
.
user
.
scrmParams
},
...
mapGetters
([
'userId'
])
},
created
()
{
this
.
getProcessNodeList
()
},
methods
:
{
goBack
()
{
this
.
$router
.
go
(
-
1
)
},
getProcessNodeList
()
{
processStructure
({
processId
:
this
.
$route
.
query
.
processId
,
workOrderId
:
this
.
$route
.
query
.
workOrderId
}).
then
(
response
=>
{
processId
:
this
.
$route
.
query
.
processId
||
this
.
scrmParams
.
processId
,
workOrderId
:
this
.
$route
.
query
.
workOrderId
||
this
.
scrmParams
.
workOrderId
}).
then
((
response
)
=>
{
this
.
isActiveProcessing
=
false
this
.
processStructureValue
=
response
.
data
this
.
circulationHistoryList
=
this
.
processStructureValue
.
circulationHistory
this
.
circulationHistoryList
=
this
.
processStructureValue
.
circulationHistory
// 获取当前展示节点列表
this
.
nodeStepList
=
[]
if
(
this
.
processStructureValue
.
nodes
)
{
for
(
var
i
=
0
;
i
<
this
.
processStructureValue
.
nodes
.
length
;
i
++
)
{
if
(
this
.
processStructureValue
.
nodes
[
i
].
id
===
this
.
processStructureValue
.
workOrder
.
current_state
)
{
if
(
this
.
processStructureValue
.
nodes
[
i
].
id
===
this
.
processStructureValue
.
workOrder
.
current_state
)
{
// 当前节点
this
.
nodeStepList
.
push
(
this
.
processStructureValue
.
nodes
[
i
])
this
.
activeIndex
=
this
.
nodeStepList
.
length
-
1
...
...
@@ -276,7 +299,11 @@ export default {
// 判断是否需要主动处理
for
(
var
stateValue
of
this
.
processStructureValue
.
workOrder
.
state
)
{
if
(
this
.
processStructureValue
.
workOrder
.
current_state
===
stateValue
.
id
&&
stateValue
.
processor
.
length
>
1
)
{
if
(
this
.
processStructureValue
.
workOrder
.
current_state
===
stateValue
.
id
&&
stateValue
.
processor
.
length
>
1
)
{
this
.
isActiveProcessing
=
true
break
}
...
...
@@ -295,7 +322,7 @@ export default {
})
promiseList
.
push
(
this
.
$refs
[
'generateForm-'
+
tpl
.
id
][
0
].
getData
())
}
Promise
.
all
(
promiseList
).
then
(
values
=>
{
Promise
.
all
(
promiseList
).
then
(
(
values
)
=>
{
for
(
var
tplDataIndex
in
this
.
tpls
)
{
this
.
tpls
[
tplDataIndex
].
tplValue
=
values
[
tplDataIndex
]
}
...
...
@@ -304,15 +331,18 @@ export default {
source_state
:
this
.
processStructureValue
.
workOrder
.
current_state
,
target_state
:
item
.
target
,
circulation
:
item
.
label
,
flow_properties
:
item
.
flowProperties
===
undefined
?
2
:
parseInt
(
item
.
flowProperties
),
flow_properties
:
item
.
flowProperties
===
undefined
?
2
:
parseInt
(
item
.
flowProperties
),
work_order_id
:
parseInt
(
this
.
$route
.
query
.
workOrderId
),
remarks
:
this
.
remarks
,
is_exec_task
:
item
.
isExecuteTask
,
tpls
:
this
.
tpls
}).
then
(
response
=>
{
}).
then
(
(
response
)
=>
{
if
(
response
.
code
===
200
)
{
// this.$router.push({ name: 'upcoming' })
// window.location.reload()
// this.$router.push({ name: 'upcoming' })
// window.location.reload()
this
.
getProcessNodeList
()
}
})
...
...
@@ -325,12 +355,14 @@ export default {
}
},
activeOrderActive
()
{
var
jsonData
=
[{
id
:
this
.
nodeStepList
[
this
.
activeIndex
].
id
,
label
:
this
.
nodeStepList
[
this
.
activeIndex
].
label
,
process_method
:
'person'
,
processor
:
[
this
.
userId
]
}]
var
jsonData
=
[
{
id
:
this
.
nodeStepList
[
this
.
activeIndex
].
id
,
label
:
this
.
nodeStepList
[
this
.
activeIndex
].
label
,
process_method
:
'person'
,
processor
:
[
this
.
userId
]
}
]
activeOrder
(
jsonData
,
this
.
$route
.
query
.
workOrderId
).
then
(()
=>
{
this
.
getProcessNodeList
()
})
...
...
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