Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zrch-risk-39
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
zrch-risk-39
Commits
5a8e52f3
提交
5a8e52f3
authored
4月 09, 2026
作者:
liuluyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
计划管理流转记录更新
上级
ae0a6c59
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
85 行增加
和
94 行删除
+85
-94
ShowFormModal.vue
...t-39/src/views/flowable/task/components/ShowFormModal.vue
+0
-0
Detail.vue
...39/src/views/flowable/task/finished/components/Detail.vue
+0
-0
Detail.vue
...9/src/views/flowable/task/myProcess/components/Detail.vue
+0
-0
TodoIndex.vue
...-39/src/views/flowable/task/todo/components/TodoIndex.vue
+52
-56
index.vue
zrch-risk-client-39/src/views/flowable/task/todo/index.vue
+0
-0
StPlanManList.vue
zrch-risk-client-39/src/views/project/plan/StPlanManList.vue
+9
-33
StPlanExcuteForm.vue
...39/src/views/project/plan/components/StPlanExcuteForm.vue
+24
-5
StPlanManForm.vue
...nt-39/src/views/project/plan/components/StPlanManForm.vue
+0
-0
没有找到文件。
zrch-risk-client-39/src/views/flowable/task/components/ShowFormModal.vue
浏览文件 @
5a8e52f3
差异被折叠。
点击展开。
zrch-risk-client-39/src/views/flowable/task/finished/components/Detail.vue
浏览文件 @
5a8e52f3
差异被折叠。
点击展开。
zrch-risk-client-39/src/views/flowable/task/myProcess/components/Detail.vue
浏览文件 @
5a8e52f3
差异被折叠。
点击展开。
zrch-risk-client-39/src/views/flowable/task/todo/components/TodoIndex.vue
浏览文件 @
5a8e52f3
...
...
@@ -57,20 +57,20 @@
<div
class=
"content-wrapper"
>
<!-- 左侧主表单 -->
<div
class=
"main-form-section"
>
<a-card
title=
"审批表单"
:bordered=
"false"
class=
"form-card"
>
<
!-- <
a-card title="审批表单" :bordered="false" class="form-card">
<template #extra>
<a-button type="link" @click="refreshForm"> <ReloadOutlined /> 刷新 </a-button>
</
template
>
</template>
-->
<div
class=
"form-content"
>
<div
v-show=
"formTp == 1"
class=
"form-wrapper"
>
<FlowInnerForm
ref=
"refCruInnerForm"
:key=
"formKey"
style=
"width: 100%"
/>
</div>
<div
v-show=
"formTp == 2"
class=
"iframe-container"
style=
"height: 470px"
>
<iFrame
:key=
"formKey"
:src=
"formUrl"
class=
"responsive-iframe"
style=
"width: 100%; height: 100%"
/>
</div>
<div
class=
"form-card"
>
<div
v-show=
"formTp == 1"
class=
"form-wrapper"
>
<FlowInnerForm
ref=
"refCruInnerForm"
:key=
"formKey"
style=
"width: 100%; height: 100%"
/>
</div>
</a-card>
<div
v-show=
"formTp == 2"
class=
"form-wrapper"
>
<iFrame
:key=
"formKey"
:src=
"formUrl"
class=
"responsive-iframe"
style=
"width: 100%; height: 100%"
/>
</div>
</div>
<!-- </a-card> -->
</div>
<!-- 右侧审批栏 -->
...
...
@@ -220,7 +220,7 @@
// API
import
{
flowRecord
}
from
'/@/components/Process/api/finished'
;
import
{
flowXmlAndNode
}
from
'/@/components/Process/api/definition'
;
import
{
complete
,
flowTaskForm
,
getNextFlowNode
,
getMyTaskFlow
,
assign
,
assignRead
}
from
'/@/components/Process/api/todo'
;
import
{
complete
,
flowTaskForm
,
getNextFlowNode
,
getMyTaskFlow
,
assign
,
assignRead
}
from
'/@/components/Process/api/todo'
;
import
{
flowTaskInfo
}
from
'/@/components/Process/api/process'
;
// 组件
...
...
@@ -723,8 +723,8 @@
}
};
//转办处理
const
handleAssignTask
=
async
()
=>
{
//转办处理
const
handleAssignTask
=
async
()
=>
{
if
(
assigning
.
value
)
return
;
try
{
assigning
.
value
=
true
;
...
...
@@ -738,33 +738,32 @@
const
formData
=
await
validate
();
Object
.
assign
(
submitData
,
formData
);
submitData
.
comment
=
submitData
.
comment
||
''
;
//test1 1958436761110269953
// submitData.values['targetUserId'] = '1959869916657950721';
if
(
userType
.
value
===
'user'
)
{
//test1 1958436761110269953
// submitData.values['targetUserId'] = '1959869916657950721';
if
(
userType
.
value
===
'user'
)
{
submitData
.
values
[
'targetUserId'
]
=
formData
.
checkSendUser
;
submitData
.
values
[
'approvalType'
]
=
'user'
;
if
(
formData
.
checkSendUser
)
{
submitData
.
values
[
'targetUserId'
]
=
formData
.
checkSendUser
;
submitData
.
values
[
'approvalType'
]
=
'user'
;
if
(
formData
.
checkSendUser
)
{
submitData
.
values
[
'targetUserId'
]
=
formData
.
checkSendUser
;
submitData
.
values
[
'approvalType'
]
=
'user'
;
}
}
else
if
(
formData
.
checkSendRole
)
{
submitData
.
values
[
'targetUserId'
]
=
formData
.
checkSendRole
;
submitData
.
values
[
'approvalType'
]
=
'role'
;
}
const
dataId
=
formUrl
.
value
.
split
(
'='
).
pop
();
submitData
.
values
[
'dataId'
]
=
dataId
;
const
lastEqualIndex
=
formUrl
.
value
.
lastIndexOf
(
'='
);
// 往前找到 & 或 ? 的位置
let
startIndex
=
formUrl
.
value
.
lastIndexOf
(
'&'
,
lastEqualIndex
);
if
(
startIndex
===
-
1
)
{
startIndex
=
formUrl
.
value
.
lastIndexOf
(
'?'
,
lastEqualIndex
);
}
const
dataName
=
formUrl
.
value
.
substring
(
startIndex
+
1
,
lastEqualIndex
);
submitData
.
values
[
'dataName'
]
=
dataName
;
}
else
if
(
formData
.
checkSendRole
)
{
submitData
.
values
[
'targetUserId'
]
=
formData
.
checkSendRole
;
submitData
.
values
[
'approvalType'
]
=
'role'
;
}
const
dataId
=
formUrl
.
value
.
split
(
'='
).
pop
();
submitData
.
values
[
'dataId'
]
=
dataId
;
const
lastEqualIndex
=
formUrl
.
value
.
lastIndexOf
(
'='
);
// 往前找到 & 或 ? 的位置
let
startIndex
=
formUrl
.
value
.
lastIndexOf
(
'&'
,
lastEqualIndex
);
if
(
startIndex
===
-
1
)
{
startIndex
=
formUrl
.
value
.
lastIndexOf
(
'?'
,
lastEqualIndex
);
}
const
dataName
=
formUrl
.
value
.
substring
(
startIndex
+
1
,
lastEqualIndex
);
submitData
.
values
[
'dataName'
]
=
dataName
;
// 执行发送
const
result
=
await
assign
(
submitData
);
...
...
@@ -784,8 +783,8 @@
}
};
//转阅处理
const
handleAssignReadTask
=
async
()
=>
{
//转阅处理
const
handleAssignReadTask
=
async
()
=>
{
if
(
assiReadgning
.
value
)
return
;
try
{
assiReadgning
.
value
=
true
;
...
...
@@ -799,23 +798,21 @@
const
formData
=
await
validate
();
Object
.
assign
(
submitData
,
formData
);
submitData
.
comment
=
submitData
.
comment
||
''
;
//test1 1958436761110269953
// submitData.values['targetUserId'] = '1959869916657950721';
if
(
userType
.
value
===
'user'
)
{
//test1 1958436761110269953
// submitData.values['targetUserId'] = '1959869916657950721';
if
(
userType
.
value
===
'user'
)
{
submitData
.
values
[
'targetUserId'
]
=
formData
.
checkSendUser
;
submitData
.
values
[
'approvalType'
]
=
'user'
;
if
(
formData
.
checkSendUser
)
{
submitData
.
values
[
'targetUserId'
]
=
formData
.
checkSendUser
;
submitData
.
values
[
'approvalType'
]
=
'user'
;
if
(
formData
.
checkSendUser
)
{
submitData
.
values
[
'targetUserId'
]
=
formData
.
checkSendUser
;
submitData
.
values
[
'approvalType'
]
=
'user'
;
}
}
else
if
(
formData
.
checkSendRole
)
{
submitData
.
values
[
'targetUserId'
]
=
formData
.
checkSendRole
;
submitData
.
values
[
'approvalType'
]
=
'role'
;
}
}
else
if
(
formData
.
checkSendRole
)
{
submitData
.
values
[
'targetUserId'
]
=
formData
.
checkSendRole
;
submitData
.
values
[
'approvalType'
]
=
'role'
;
}
// 执行发送
const
result
=
await
assignRead
(
submitData
);
...
...
@@ -835,8 +832,6 @@
}
};
defineExpose
({
iniData
,
});
...
...
@@ -868,7 +863,7 @@
height
:
100vh
;
margin
:
0
;
padding
:
0
;
background
:
linear-gradient
(
135deg
,
#b0b3c2
0%
,
#764ba2
100%
);
//
background: linear-gradient(135deg, #b0b3c2 0%, #764ba2 100%);
overflow
:
hidden
;
}
...
...
@@ -945,6 +940,7 @@
}
.next-node-label
{
width
:
120px
;
color
:
#666
;
font-size
:
14px
;
}
...
...
zrch-risk-client-39/src/views/flowable/task/todo/index.vue
浏览文件 @
5a8e52f3
差异被折叠。
点击展开。
zrch-risk-client-39/src/views/project/plan/StPlanManList.vue
浏览文件 @
5a8e52f3
<
template
>
<div
class=
"plan-management-page"
>
<!-- 页面头部区域 -->
<!--
<div
class=
"page-header"
>
<div
class=
"header-content"
>
<div
class=
"header-left"
>
<h1
class=
"page-title"
>
计划编制管理
</h1>
<p
class=
"page-desc"
>
统一管理和追踪所有业务计划的编制与审批流程
</p>
</div>
<div
class=
"header-stats"
>
<div
class=
"stat-item"
>
<span
class=
"stat-value"
>
--
</span>
<span
class=
"stat-label"
>
计划总数
</span>
</div>
<div
class=
"stat-item warning"
>
<span
class=
"stat-value"
>
--
</span>
<span
class=
"stat-label"
>
待处理
</span>
</div>
<div
class=
"stat-item success"
>
<span
class=
"stat-value"
>
--
</span>
<span
class=
"stat-label"
>
已完成
</span>
</div>
</div>
</div>
</div>
-->
<!-- 主内容区 -->
<div
class=
"main-content"
>
<!-- 搜索区域 -->
...
...
@@ -43,12 +19,12 @@
<JSearchSelect
placeholder=
"请选择类型"
v-model:value=
"queryParam['projectType']"
dict=
"projecttype"
/>
</a-form-item>
</a-col>
<a-col
:xl=
"
5
"
:lg=
"8"
:md=
"12"
:sm=
"24"
>
<a-col
:xl=
"
7
"
:lg=
"8"
:md=
"12"
:sm=
"24"
>
<a-form-item
label=
"执行部门"
>
<JSelectDept
placeholder=
"请选择执行部门"
v-model:value=
"queryParam['execDepCode']"
/>
</a-form-item>
</a-col>
<a-col
:xl=
"
4
"
:lg=
"8"
:md=
"12"
:sm=
"24"
>
<a-col
:xl=
"
5
"
:lg=
"8"
:md=
"12"
:sm=
"24"
>
<a-form-item
label=
"计划状态"
>
<a-select
v-model:value=
"queryParam['status']"
...
...
@@ -66,6 +42,8 @@
/>
</a-form-item>
</a-col>
</a-row>
<a-row
:gutter=
"16"
>
<a-col
:xl=
"5"
:lg=
"8"
:md=
"12"
:sm=
"24"
>
<a-form-item
label=
"计划日期"
>
<a-range-picker
...
...
@@ -76,8 +54,6 @@
/>
</a-form-item>
</a-col>
</a-row>
<a-row
:gutter=
"16"
>
<a-col
:xl=
"5"
:lg=
"8"
:md=
"12"
:sm=
"24"
>
<a-form-item
label=
"优先级"
>
<a-select
...
...
@@ -106,7 +82,7 @@
/>
</a-form-item>
</a-col>
<a-col
:xl=
"
14
"
:lg=
"16"
:md=
"24"
:sm=
"24"
>
<a-col
:xl=
"
7
"
:lg=
"16"
:md=
"24"
:sm=
"24"
>
<a-form-item
class=
"search-btn-group"
>
<a-space
:size=
"8"
>
<a-button
type=
"primary"
@
click=
"searchQuery"
>
查询
</a-button>
...
...
@@ -166,12 +142,12 @@
<!-- 待办抽屉 -->
<div
v-if=
"isShowDrawer"
>
<a-drawer
destroyOnClose
v-model:open=
"isShowDrawer"
class=
"flat-drawer"
title=
"待办任务"
placement=
"right"
width=
"90%"
>
<
template
#
extra
>
<
!-- <
template #extra>
<div class="drawer-tags">
<span class="tag">发起人: {{ startUser }}</span>
<span class="tag">任务节点: {{ taskName }}</span>
</div>
</
template
>
</template>
-->
<TodoIndex
v-if=
"isShowDrawer"
ref=
"refTodoIndex"
@
callback=
"handleSuccess"
/>
</a-drawer>
</div>
...
...
@@ -545,8 +521,8 @@
{
label
:
'待办'
,
ifShow
:
()
=>
{
console
.
log
(
"-------------record['uid'] "
,
record
[
'uid'
]);
console
.
log
(
"-------------userStore.getUserInfo.id "
,
userStore
.
getUserInfo
.
id
);
console
.
log
(
"-------------record['uid'] "
,
record
[
'uid'
]);
console
.
log
(
'-------------userStore.getUserInfo.id '
,
userStore
.
getUserInfo
.
id
);
if
(
record
[
'bpmStatus'
]
==
'2'
&&
record
[
'uid'
]
==
userStore
.
getUserInfo
.
id
)
return
true
;
else
return
false
;
},
...
...
zrch-risk-client-39/src/views/project/plan/components/StPlanExcuteForm.vue
浏览文件 @
5a8e52f3
...
...
@@ -73,7 +73,7 @@
</
template
>
<
script
setup
lang=
"ts"
>
import
{
ref
,
reactive
,
onMounted
,
watch
,
nextTick
}
from
'vue'
;
import
{
ref
,
reactive
,
onMounted
,
watch
,
nextTick
,
toRaw
}
from
'vue'
;
import
{
message
}
from
'ant-design-vue'
;
import
dayjs
from
'dayjs'
;
import
{
saveOrUpdate
}
from
'../StPlanMan.api'
;
...
...
@@ -107,6 +107,25 @@
attachments
:
[]
as
any
[],
});
// accept external formData prop from parent modal
const
props
=
defineProps
({
formData
:
{
type
:
Object
,
default
:
()
=>
({}),
},
});
// sync incoming prop into internal reactive formData
watch
(
()
=>
props
.
formData
,
(
v
)
=>
{
if
(
v
&&
Object
.
keys
(
v
).
length
>
0
)
{
Object
.
assign
(
formData
,
v
);
}
},
{
immediate
:
true
,
deep
:
true
}
);
// 监听formData变化,用于调试
watch
(
...
...
@@ -272,7 +291,8 @@
const
response
=
await
saveOrUpdate
(
submitData
,
true
);
if
(
response
)
{
message
.
success
(
'保存成功'
);
// message.success('保存成功');
console
.
log
(
'保存成功:'
);
// 更新缓存
planFormStore
.
updateFormDataCache
(
formData
);
console
.
log
(
response
);
...
...
@@ -355,6 +375,7 @@
resetForm
,
initFormData
,
isInitialized
,
getFormData
:
()
=>
toRaw
(
formData
),
});
</
script
>
...
...
@@ -489,10 +510,8 @@
/* ==================== 表单底部按钮 ==================== */
.form-footer {
padding: 14px 32px;
background: var(--color-bg-section);
border-top: 1px solid var(--color-border);
display: flex;
justify-content:
flex-end
;
justify-content:
center
;
}
/* ==================== 上传区域 ==================== */
...
...
zrch-risk-client-39/src/views/project/plan/components/StPlanManForm.vue
浏览文件 @
5a8e52f3
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论