明树Git Lab
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
J
jt_front
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
Administrator
jt_front
Commits
c3408065
Commit
c3408065
authored
May 13, 2026
by
zhanghan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
初版需求处理
parent
6489b8a5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
134 additions
and
35 deletions
+134
-35
lct.png
src/assets/images/lct.png
+0
-0
routerBack.vue
src/components/common/routerBack.vue
+36
-10
addProject.vue
src/views/projectManage/addProject.vue
+98
-25
No files found.
src/assets/images/lct.png
0 → 100644
View file @
c3408065
77.3 KB
src/components/common/routerBack.vue
View file @
c3408065
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
v-if=
"showProcess"
v-if=
"showProcess"
type=
"primary"
type=
"primary"
plain
plain
@
click=
"
processDialogVisible = true
"
@
click=
"
handleProcess
"
>
>
办理过程
办理过程
</el-button>
</el-button>
...
@@ -42,28 +42,41 @@
...
@@ -42,28 +42,41 @@
<el-dialog
<el-dialog
v-if=
"showProcess"
v-if=
"showProcess"
v-model=
"processDialogVisible"
v-model=
"processDialogVisible"
:title=
"processInfo.projectName || '全部办理记录'
"
title=
"办理记录
"
width=
"80%"
width=
"80%"
top=
"5vh"
top=
"5vh"
:close-on-click-modal=
"false"
:close-on-click-modal=
"false"
:close-on-press-escape=
"true"
:close-on-press-escape=
"true"
>
>
<div
class=
"process-dialog-content"
>
<div
class=
"process-dialog-content"
>
<div
class=
"process-project-name"
v-if=
"processInfo.projectName"
>
项目名称:
<span
class=
"name"
>
{{
processInfo
.
projectName
}}
</span>
</div>
<el-table
<el-table
:data=
"processData"
:data=
"processData"
border
border
style=
"width: 100%"
style=
"width: 100%"
class=
"process-table"
class=
"process-table"
:header-cell-style=
"
{ background: '#f5f7fa', color: '#333', textAlign: 'center', fontWeight: 600 }"
:header-cell-style=
"
{
background: '#f5f7fa',
color: '#333',
textAlign: 'center',
fontWeight: 600,
}"
:cell-style="{ textAlign: 'center' }"
:cell-style="{ textAlign: 'center' }"
>
>
<el-table-column
type=
"index"
label=
"序号"
width=
"80"
/>
<el-table-column
type=
"index"
label=
"序号"
width=
"80"
/>
<el-table-column
prop=
"handleStep"
label=
"办理环节"
min-width=
"120"
/>
<el-table-column
prop=
"actionName"
label=
"操作"
min-width=
"150"
/>
<el-table-column
prop=
"handleDept"
label=
"办理处室"
min-width=
"150"
/>
<el-table-column
label=
"操作人"
min-width=
"120"
>
<el-table-column
prop=
"handlePerson"
label=
"办理人"
min-width=
"120"
/>
<template
#
default=
"
{ row }">
{{
row
.
creator
?.
name
}}
</
template
>
<el-table-column
prop=
"nextPerson"
label=
"下一步办理人"
min-width=
"120"
/>
</el-table-column>
<el-table-column
prop=
"handleOpinion"
label=
"办理意见"
min-width=
"120"
/>
<el-table-column
prop=
"actionName"
label=
"项目步骤"
min-width=
"150"
/>
<el-table-column
prop=
"handleTime"
label=
"办理时间"
min-width=
"180"
/>
<el-table-column
prop=
"approvalMessage"
label=
"审核意见"
min-width=
"150"
/>
<el-table-column
prop=
"createdAt"
label=
"时间"
min-width=
"180"
/>
</el-table>
</el-table>
</div>
</div>
<
template
#
footer
>
<
template
#
footer
>
...
@@ -115,7 +128,7 @@ const props = defineProps({
...
@@ -115,7 +128,7 @@ const props = defineProps({
},
},
});
});
const
emit
=
defineEmits
([
"save"
,
"back"
,
"export"
]);
const
emit
=
defineEmits
([
"save"
,
"back"
,
"export"
,
"process"
]);
const
route
=
useRoute
();
const
route
=
useRoute
();
const
router
=
useRouter
();
const
router
=
useRouter
();
...
@@ -134,6 +147,11 @@ const handleSave = () => {
...
@@ -134,6 +147,11 @@ const handleSave = () => {
const
handleExport
=
()
=>
{
const
handleExport
=
()
=>
{
emit
(
"export"
);
emit
(
"export"
);
};
};
const
handleProcess
=
()
=>
{
emit
(
"process"
);
processDialogVisible
.
value
=
true
;
};
</
script
>
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
scoped
lang=
"scss"
>
.add-project-back
{
.add-project-back
{
...
@@ -168,4 +186,12 @@ const handleExport = () => {
...
@@ -168,4 +186,12 @@ const handleExport = () => {
gap
:
10px
;
gap
:
10px
;
}
}
}
}
.process-project-name
{
font-size
:
14px
;
margin-bottom
:
12px
;
.name
{
font-weight
:
700
;
}
}
</
style
>
</
style
>
src/views/projectManage/addProject.vue
View file @
c3408065
...
@@ -9,10 +9,11 @@
...
@@ -9,10 +9,11 @@
['1', '5', '7'].includes(formData.projectLzType.toString()))
['1', '5', '7'].includes(formData.projectLzType.toString()))
"
"
:loading=
"loading"
:loading=
"loading"
:show-process=
"
true
"
:show-process=
"
!!projectId
"
:process-info=
"processInfo"
:process-info=
"processInfo"
:process-data=
"processTableData"
:process-data=
"processTableData"
@
save=
"() => saveClick('save')"
@
save=
"() => saveClick('save')"
@
process=
"getProcessData"
></routerBack>
></routerBack>
<div
class=
"tabs-content"
>
<div
class=
"tabs-content"
>
...
@@ -85,12 +86,24 @@
...
@@ -85,12 +86,24 @@
isPreview &&
isPreview &&
canAudit &&
canAudit &&
(formData.projectLzType == '3' ||
(formData.projectLzType == '3' ||
formData.projectLzType == '4' ||
jcFormData.projectLzType == '8') &&
jcFormData.projectLzType == '8') &&
formData.del !== 1
formData.del !== 1
"
"
type=
"primary"
type=
"primary"
@
click=
"auditDialogVisible = true"
@
click=
"auditDialogVisible = true"
>
审核
</el-button
>
{{ formData.projectLzType == '3' ? '初审' : '审核' }}
</el-button
>
<el-button
v-if=
"
isPreview &&
canAudit &&
formData.projectLzType == '2' &&
formData.del !== 1
"
type=
"primary"
@
click=
"approveDialogVisible = true"
>
核准
</el-button
>
>
</div>
</div>
</div>
</div>
...
@@ -119,7 +132,7 @@
...
@@ -119,7 +132,7 @@
<el-option
:value=
"false"
label=
"不同意"
></el-option>
<el-option
:value=
"false"
label=
"不同意"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
备注
"
prop=
"approvalMessage"
>
<el-form-item
label=
"
审核意见
"
prop=
"approvalMessage"
>
<el-input
type=
"textarea"
v-model=
"auditFormData.approvalMessage"
/>
<el-input
type=
"textarea"
v-model=
"auditFormData.approvalMessage"
/>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -131,6 +144,41 @@
...
@@ -131,6 +144,41 @@
</
template
>
</
template
>
</el-dialog>
</el-dialog>
<el-dialog
v-model=
"approveDialogVisible"
title=
"核准意见"
width=
"500"
align-center
@
close=
"cancelApprove"
>
<el-form
:model=
"approveFormData"
ref=
"approveForm"
:rules=
"approveRules"
label-width=
"100"
>
<el-form-item
label=
"是否同意"
prop=
"approvalResult"
>
<el-select
v-model=
"approveFormData.approvalResult"
placeholder=
"请选择"
clearable
>
<el-option
:value=
"true"
label=
"同意"
></el-option>
<el-option
:value=
"false"
label=
"不同意"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"审核意见"
prop=
"approvalMessage"
>
<el-input
type=
"textarea"
v-model=
"approveFormData.approvalMessage"
/>
</el-form-item>
</el-form>
<
template
#
footer
>
<div
class=
"dialog-footer"
>
<el-button
@
click=
"cancelApprove"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitApprove"
>
确定
</el-button>
</div>
</
template
>
</el-dialog>
</div>
</div>
</template>
</template>
...
@@ -526,24 +574,16 @@ const saveClick = (type) => {
...
@@ -526,24 +574,16 @@ const saveClick = (type) => {
const
processInfo
=
computed
(()
=>
({
const
processInfo
=
computed
(()
=>
({
projectName
:
formData
.
projectName
,
projectName
:
formData
.
projectName
,
}));
}));
const
processTableData
=
reactive
([
const
processTableData
=
ref
([]);
{
const
getProcessData
=
()
=>
{
handleStep
:
"用户发起"
,
proxy
.
$post
({
handleDept
:
"—"
,
url
:
"/api/project/getProFlowRecord"
,
handlePerson
:
"张三"
,
data
:
{
projectId
},
nextPerson
:
"李四"
,
callback
:
(
data
)
=>
{
handleOpinion
:
"用户提交"
,
processTableData
.
value
=
data
||
[];
handleTime
:
"2026-05-13 10:17:28"
,
},
},
});
{
};
handleStep
:
"项目编码"
,
handleDept
:
"规划发展部"
,
handlePerson
:
"李四"
,
nextPerson
:
"—"
,
handleOpinion
:
"同意编码"
,
handleTime
:
"2026-05-13 10:19:32"
,
},
]);
// 审核
// 审核
let
auditFormData
=
ref
({});
let
auditFormData
=
ref
({});
...
@@ -564,10 +604,12 @@ const submitAudit = () => {
...
@@ -564,10 +604,12 @@ const submitAudit = () => {
if
(
valid
)
{
if
(
valid
)
{
let
url
=
let
url
=
formData
.
projectLzType
.
toString
()
===
"3"
formData
.
projectLzType
.
toString
()
===
"3"
?
"approvalLixiang"
?
"approvalLixiangByTouGuanJbr"
:
jcFormData
.
projectLzType
.
toString
()
===
"8"
:
formData
.
projectLzType
.
toString
()
===
"4"
?
"approvalJuece"
?
"approvalLixiang"
:
""
;
:
jcFormData
.
projectLzType
.
toString
()
===
"8"
?
"approvalJuece"
:
""
;
proxy
.
$post
({
proxy
.
$post
({
url
:
"/api/project/"
+
url
,
url
:
"/api/project/"
+
url
,
data
:
{
data
:
{
...
@@ -581,4 +623,35 @@ const submitAudit = () => {
...
@@ -581,4 +623,35 @@ const submitAudit = () => {
}
}
});
});
};
};
// 核准
let
approveFormData
=
ref
({});
let
approveForm
=
ref
();
let
approveDialogVisible
=
ref
(
false
);
const
approveRules
=
{
approvalResult
:
[
{
required
:
true
,
message
:
"请选择核准意见"
,
trigger
:
"change"
},
],
};
const
cancelApprove
=
()
=>
{
approveFormData
.
value
=
{};
approveForm
.
value
.
resetFields
();
approveDialogVisible
.
value
=
false
;
};
const
submitApprove
=
()
=>
{
approveForm
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
proxy
.
$post
({
url
:
"/api/project/approvalLixiangByDepartHeader"
,
data
:
{
id
:
formData
.
id
,
...
approveFormData
.
value
,
},
callback
:
(
data
)
=>
{
router
.
back
(
-
1
);
},
});
}
});
};
</
script
>
</
script
>
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