明树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
f71a1732
Commit
f71a1732
authored
Feb 27, 2026
by
yangyajing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
消息列表页
parent
3d224552
Pipeline
#107751
passed with stage
in 20 seconds
Changes
11
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
273 additions
and
68 deletions
+273
-68
MainLayout.vue
src/layouts/MainLayout.vue
+41
-0
routes.js
src/router/routes.js
+1
-1
manage.less
src/styles/manage.less
+7
-0
addStatement.vue
src/views/investingManage/addStatement.vue
+0
-1
addProject.vue
src/views/projectManage/addProject.vue
+82
-24
projectAllPage.vue
src/views/projectManage/projectAllPage.vue
+0
-3
projectArgument.vue
src/views/projectManage/projectArgument.vue
+0
-3
projectDecision.vue
src/views/projectManage/projectDecision.vue
+1
-1
projectDraft.vue
src/views/projectManage/projectDraft.vue
+1
-7
projectSetUp.vue
src/views/projectManage/projectSetUp.vue
+12
-27
message.vue
src/views/systemManage/message.vue
+128
-1
No files found.
src/layouts/MainLayout.vue
View file @
f71a1732
...
@@ -7,6 +7,12 @@
...
@@ -7,6 +7,12 @@
<!--
<span
class=
"city-name"
>
123123
</span>
-->
<!--
<span
class=
"city-name"
>
123123
</span>
-->
</div>
</div>
<div
class=
"header-right"
>
<div
class=
"header-right"
>
<div
class=
"message-wrap"
@
click=
"toMessagePage"
>
<el-icon
size=
"20"
>
<ChatDotSquare
/>
</el-icon>
<div
class=
"count"
>
{{
messageCount
}}
</div>
</div>
<div>
<div>
<el-dropdown>
<el-dropdown>
<span
class=
"username"
>
<span
class=
"username"
>
...
@@ -62,8 +68,24 @@ const getResourceData = () => {
...
@@ -62,8 +68,24 @@ const getResourceData = () => {
},
},
});
});
};
};
// 获取未读消息数量
let
messageCount
=
ref
(
0
);
const
getMessageCount
=
()
=>
{
proxy
.
$post
({
url
:
"/api/message/getMesCount"
,
data
:
{},
callback
:
(
data
)
=>
{
messageCount
.
value
=
data
.
count
;
},
});
};
// 跳转消息列表页
const
toMessagePage
=
()
=>
{
router
.
push
(
"/message"
);
}
onMounted
(()
=>
{
onMounted
(()
=>
{
getResourceData
();
getResourceData
();
getMessageCount
();
});
});
// 处理退出登录
// 处理退出登录
const
handleLogout
=
()
=>
{
const
handleLogout
=
()
=>
{
...
@@ -154,5 +176,24 @@ const handleLogout = () => {
...
@@ -154,5 +176,24 @@ const handleLogout = () => {
}
}
.header-right {
.header-right {
display: flex;
display: flex;
align-items: center;
.message-wrap{
position: relative;
margin-right: 10px;
cursor: pointer;
.count{
position: absolute;
top: -5px;
right: -5px;
min-width: 14px;
height: 14px;
border-radius: 50%;
background-color: red;
color: #fff;
font-size: 10px;
text-align: center;
line-height: 14px;
}
}
}
}
</
style
>
</
style
>
src/router/routes.js
View file @
f71a1732
...
@@ -71,7 +71,7 @@ const routes = [
...
@@ -71,7 +71,7 @@ const routes = [
component
:
()
=>
import
(
"@/views/projectManage/projectAllPage.vue"
),
component
:
()
=>
import
(
"@/views/projectManage/projectAllPage.vue"
),
},
},
{
{
path
:
"/addProject
/:type
"
,
path
:
"/addProject"
,
name
:
"addProject"
,
name
:
"addProject"
,
title
:
"新增项目"
,
title
:
"新增项目"
,
component
:
()
=>
import
(
"@/views/projectManage/addProject.vue"
),
component
:
()
=>
import
(
"@/views/projectManage/addProject.vue"
),
...
...
src/styles/manage.less
View file @
f71a1732
...
@@ -112,6 +112,7 @@
...
@@ -112,6 +112,7 @@
&-header{
&-header{
display: flex;
display: flex;
justify-content: space-between;
justify-content: space-between;
margin-bottom: 10px;
}
}
&-content{
&-content{
flex: 1;
flex: 1;
...
@@ -121,6 +122,12 @@
...
@@ -121,6 +122,12 @@
.tabs-content{
.tabs-content{
flex: 1;
flex: 1;
height: 0;
height: 0;
display: flex;
flex-direction: column;
&>.el-tabs{
flex: 1;
height: 0;
}
}
}
.el-tabs{
.el-tabs{
height: 100%;
height: 100%;
...
...
src/views/investingManage/addStatement.vue
View file @
f71a1732
...
@@ -338,7 +338,6 @@
...
@@ -338,7 +338,6 @@
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
moment
from
"moment"
;
const
userStore
=
useUserStore
();
const
userStore
=
useUserStore
();
const
router
=
useRouter
();
const
router
=
useRouter
();
const
route
=
useRoute
();
const
route
=
useRoute
();
...
...
src/views/projectManage/addProject.vue
View file @
f71a1732
...
@@ -2,19 +2,24 @@
...
@@ -2,19 +2,24 @@
<div
class=
"add-project-container"
>
<div
class=
"add-project-container"
>
<div
class=
"add-project-content"
v-loading=
"loading"
>
<div
class=
"add-project-content"
v-loading=
"loading"
>
<div
class=
"tabs-content"
>
<div
class=
"tabs-content"
>
<div
class=
"add-project-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
<el-button
type=
"default"
@
click=
"backClick"
>
返回
</el-button>
<template
v-if=
"!loading && !isPreview"
>
<el-button
type=
"primary"
v-if=
"['1', '5', '7'].includes(formData.projectLzType) || !formData.projectLzType"
@
click=
"saveClick('save')"
>
保存
</el-button>
<el-button
type=
"primary"
v-if=
"formData.projectLzType == '1'"
@
click=
"saveClick('submit')"
>
发起立项填报
</el-button>
<el-button
type=
"primary"
v-if=
"jcFormData.projectLzType === '7'"
@
click=
"saveClick('submit')"
>
发起决策信息填报
</el-button>
</
template
>
<!-- <el-button
v-if="isPreview && "
type="primary" @click="auditDialogVisible = true"
>审核</el-button> -->
</div>
</div>
<el-tabs
v-model=
"pageActiveName"
type=
"border-card"
>
<el-tabs
v-model=
"pageActiveName"
type=
"border-card"
>
<el-tab-pane
label=
"立项填报"
name=
"立项填报"
>
<el-tab-pane
label=
"立项填报"
name=
"立项填报"
>
<div
class=
"project-tab-content"
>
<div
class=
"project-tab-content"
>
<div
class=
"add-project-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
<el-button
type=
"default"
@
click=
"backClick"
>
返回
</el-button>
<template
v-if=
"!loading && !isPreview"
>
<el-button
type=
"primary"
v-if=
"formData.projectLzType == '1' || !formData.projectLzType"
@
click=
"saveClick('save')"
>
保存
</el-button>
<el-button
type=
"primary"
v-if=
"formData.projectLzType == '1'"
@
click=
"saveClick('submit')"
>
发起立项填报
</el-button>
</
template
>
</div>
</div>
<el-tabs
v-model=
"lxTabActiveName"
>
<el-tabs
v-model=
"lxTabActiveName"
>
<el-tab-pane
label=
"基本信息"
name=
"基本信息"
>
<el-tab-pane
label=
"基本信息"
name=
"基本信息"
>
<div
class=
"tab-content"
>
<div
class=
"tab-content"
>
...
@@ -88,7 +93,16 @@
...
@@ -88,7 +93,16 @@
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"9"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"项目阶段"
>
<el-select
v-model=
"formData.xmjd"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-option
v-for=
"item in xmjdList"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"财务报表类型"
>
<el-form-item
label=
"财务报表类型"
>
<el-select
v-model=
"formData.cwbblx"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-select
v-model=
"formData.cwbblx"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-option
v-for=
"item in cwbblxList"
:key=
"item.key"
<el-option
v-for=
"item in cwbblxList"
:key=
"item.key"
...
@@ -97,7 +111,7 @@
...
@@ -97,7 +111,7 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
9
"
>
<el-col
:span=
"
12
"
>
<el-form-item
label=
"政府审批(核准、备案)级别"
:label-width=
"200"
>
<el-form-item
label=
"政府审批(核准、备案)级别"
:label-width=
"200"
>
<el-select
v-model=
"formData.zfsphzbajb"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-select
v-model=
"formData.zfsphzbajb"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-option
v-for=
"item in zfspjbList"
:key=
"item.key"
<el-option
v-for=
"item in zfspjbList"
:key=
"item.key"
...
@@ -106,7 +120,7 @@
...
@@ -106,7 +120,7 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
6
"
>
<el-col
:span=
"
12
"
>
<el-form-item
label=
"是否履行标前预审程序"
:label-width=
"170"
>
<el-form-item
label=
"是否履行标前预审程序"
:label-width=
"170"
>
<el-radio-group
v-model=
"formData.sflxbqyscx"
>
<el-radio-group
v-model=
"formData.sflxbqyscx"
>
<el-radio
:value=
"1"
>
是
</el-radio>
<el-radio
:value=
"1"
>
是
</el-radio>
...
@@ -869,16 +883,6 @@
...
@@ -869,16 +883,6 @@
:lazy=
"true"
:lazy=
"true"
>
>
<div
class=
"project-tab-content"
>
<div
class=
"project-tab-content"
>
<div
class=
"add-project-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
<el-button
type=
"default"
@
click=
"backClick"
>
返回
</el-button>
<
template
v-if=
"!loading && !isPreview"
>
<el-button
type=
"primary"
@
click=
"saveClick('save')"
>
保存
</el-button>
<el-button
type=
"primary"
v-if=
"jcFormData.projectLzType === '7'"
@
click=
"saveClick('submit')"
>
发起决策信息填报
</el-button>
</
template
>
</div>
</div>
<el-tabs
v-model=
"jcTabActiveName"
>
<el-tabs
v-model=
"jcTabActiveName"
>
<el-tab-pane
label=
"基本信息"
name=
"基本信息"
>
<el-tab-pane
label=
"基本信息"
name=
"基本信息"
>
<div
class=
"tab-content"
>
<div
class=
"tab-content"
>
...
@@ -1109,7 +1113,16 @@
...
@@ -1109,7 +1113,16 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"8"
>
<el-form-item
label=
"项目阶段"
>
<el-select
v-model=
"formData.xmjd"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-option
v-for=
"item in xmjdList"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"主业/非主业"
>
<el-form-item
label=
"主业/非主业"
>
<el-select
v-model=
"jcFormData.zyfzy"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-select
v-model=
"jcFormData.zyfzy"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-option
v-for=
"item in zyList"
:key=
"item.key"
<el-option
v-for=
"item in zyList"
:key=
"item.key"
...
@@ -2517,6 +2530,27 @@
...
@@ -2517,6 +2530,27 @@
</el-tabs>
</el-tabs>
</div>
</div>
</div>
</div>
<el-dialog
v-model=
"auditDialogVisible"
title=
"审批意见"
width=
"500"
align-center
@
close=
"cancelAudit"
>
<el-form
:model=
"auditFormData"
ref=
"auditForm"
:rules=
"auditRules"
label-width=
"100"
>
<el-form-item
label=
"是否同意"
prop=
"approvalResult"
>
<el-select
v-model=
"auditFormData.approvalResult"
placeholder=
"请选择"
>
<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=
"auditFormData.approvalMessage"
/>
</el-form-item>
</el-form>
<
template
#
footer
>
<div
class=
"dialog-footer"
>
<el-button
@
click=
"cancelAudit"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitAudit"
>
确定
</el-button>
</div>
</
template
>
</el-dialog>
</div>
</div>
</template>
</template>
...
@@ -3231,6 +3265,7 @@
...
@@ -3231,6 +3265,7 @@
let
zyList
=
reactive
([]);
// 主页/非主业
let
zyList
=
reactive
([]);
// 主页/非主业
let
cwbblxList
=
reactive
([]);
// 财务报表类型
let
cwbblxList
=
reactive
([]);
// 财务报表类型
let
zfspjbList
=
reactive
([]);
// 政府审批(核准、备案)级别
let
zfspjbList
=
reactive
([]);
// 政府审批(核准、备案)级别
let
xmjdList
=
ref
([]);
// 项目阶段
let
jnwList
=
reactive
([]);
// 境内/外 // 级联
let
jnwList
=
reactive
([]);
// 境内/外 // 级联
let
szjList
=
ref
([]);
// 省(境内)/洲际(境外) // 级联
let
szjList
=
ref
([]);
// 省(境内)/洲际(境外) // 级联
let
dsgjList
=
ref
([]);
// 地市(境内)/国家(境外) // 级联
let
dsgjList
=
ref
([]);
// 地市(境内)/国家(境外) // 级联
...
@@ -3416,6 +3451,9 @@
...
@@ -3416,6 +3451,9 @@
tzmdejflList
.
value
=
tzmdyjflList
.
filter
(
item
=>
item
.
key
==
data
.
tzmdyjfl
)[
0
]?.
children
||
[];
tzmdejflList
.
value
=
tzmdyjflList
.
filter
(
item
=>
item
.
key
==
data
.
tzmdyjfl
)[
0
]?.
children
||
[];
tzznejflList
.
value
=
tzznyjflList
.
filter
(
item
=>
item
.
key
==
data
.
tzznyjfl
)[
0
]?.
children
||
[];
tzznejflList
.
value
=
tzznyjflList
.
filter
(
item
=>
item
.
key
==
data
.
tzznyjfl
)[
0
]?.
children
||
[];
if
(
Number
(
formData
.
projectLzType
)
>=
5
)
{
pageActiveName
.
value
=
"决策信息填报"
;
}
// 决策
// 决策
let
jcData
=
res
.
juece
||
res
.
lixiang
||
{};
let
jcData
=
res
.
juece
||
res
.
lixiang
||
{};
Object
.
assign
(
jcFormData
,
jcData
);
Object
.
assign
(
jcFormData
,
jcData
);
...
@@ -3458,6 +3496,7 @@
...
@@ -3458,6 +3496,7 @@
zyList
=
resourceData
.
zyfzy
;
zyList
=
resourceData
.
zyfzy
;
cwbblxList
=
resourceData
.
cwbblx
;
cwbblxList
=
resourceData
.
cwbblx
;
zfspjbList
=
resourceData
.
spjb
;
zfspjbList
=
resourceData
.
spjb
;
xmjdList
=
resourceData
.
xmjd
;
jnwList
=
resourceData
.
dqlx
;
jnwList
=
resourceData
.
dqlx
;
xmqyList
=
resourceData
.
xmqy
;
xmqyList
=
resourceData
.
xmqy
;
bzList
=
resourceData
.
bizhong
;
bzList
=
resourceData
.
bizhong
;
...
@@ -3557,6 +3596,25 @@
...
@@ -3557,6 +3596,25 @@
})
})
}
}
};
};
// 审核
let
auditFormData
=
ref
({});
let
auditForm
=
ref
();
let
auditDialogVisible
=
ref
(
false
);
const
auditRules
=
{
approvalResult
:
[
{
required
:
true
,
message
:
"请选择审批意见"
,
trigger
:
"change"
}
]
};
const
cancelAudit
=
()
=>
{
auditFormData
.
value
=
{};
auditForm
.
value
.
resetFields
();
auditDialogVisible
.
value
=
false
;
};
const
submitAudit
=
()
=>
{
auditForm
.
value
.
validate
(
valid
=>
{
if
(
valid
)
{}
});
};
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
...
...
src/views/projectManage/projectAllPage.vue
View file @
f71a1732
...
@@ -181,9 +181,6 @@
...
@@ -181,9 +181,6 @@
const
previewProject
=
(
item
)
=>
{
const
previewProject
=
(
item
)
=>
{
router
.
push
({
router
.
push
({
name
:
"addProject"
,
name
:
"addProject"
,
params
:
{
type
:
"xmlingxuan"
},
query
:
{
query
:
{
isPreview
:
true
,
isPreview
:
true
,
projectId
:
item
.
id
projectId
:
item
.
id
...
...
src/views/projectManage/projectArgument.vue
View file @
f71a1732
...
@@ -113,9 +113,6 @@
...
@@ -113,9 +113,6 @@
const
fillProject
=
(
item
)
=>
{
const
fillProject
=
(
item
)
=>
{
router
.
push
({
router
.
push
({
name
:
"addProject"
,
name
:
"addProject"
,
params
:
{
type
:
"xmlz"
},
query
:
{
query
:
{
projectId
:
item
.
id
projectId
:
item
.
id
}
}
...
...
src/views/projectManage/projectDecision.vue
View file @
f71a1732
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
<template
#
operations=
"
{ row, index }">
<template
#
operations=
"
{ row, index }">
<el-button
link
type=
"primary"
size=
"small"
<el-button
link
type=
"primary"
size=
"small"
:loading=
"row.loading"
@
click=
"getResult(row)"
:loading=
"row.loading"
@
click=
"getResult(row)"
>
查询
决策结果
</el-button>
>
查询
</el-button>
</
template
>
</
template
>
</common-table>
</common-table>
</div>
</div>
...
...
src/views/projectManage/projectDraft.vue
View file @
f71a1732
...
@@ -113,14 +113,11 @@
...
@@ -113,14 +113,11 @@
getProjectData
();
getProjectData
();
}
}
const
addProject
=
()
=>
{
const
addProject
=
()
=>
{
router
.
push
(
"/addProject
/xmlingxuan
"
);
router
.
push
(
"/addProject"
);
};
};
const
editProject
=
(
item
)
=>
{
const
editProject
=
(
item
)
=>
{
router
.
push
({
router
.
push
({
name
:
"addProject"
,
name
:
"addProject"
,
params
:
{
type
:
"xmlingxuan"
},
query
:
{
query
:
{
projectId
:
item
.
id
projectId
:
item
.
id
}
}
...
@@ -129,9 +126,6 @@
...
@@ -129,9 +126,6 @@
const
previewProject
=
(
item
)
=>
{
const
previewProject
=
(
item
)
=>
{
router
.
push
({
router
.
push
({
name
:
"addProject"
,
name
:
"addProject"
,
params
:
{
type
:
"xmlingxuan"
},
query
:
{
query
:
{
isPreview
:
true
,
isPreview
:
true
,
projectId
:
item
.
id
projectId
:
item
.
id
...
...
src/views/projectManage/projectSetUp.vue
View file @
f71a1732
...
@@ -22,16 +22,16 @@
...
@@ -22,16 +22,16 @@
@
current-page-change=
"handleCurrentPageChange"
@
current-page-change=
"handleCurrentPageChange"
>
>
<template
#
operations=
"
{ row, index }">
<template
#
operations=
"
{ row, index }">
<!-- 立项审批中 -->
<el-button
link
type=
"primary"
size=
"small"
v-if=
"row.projectLzType === '3'"
:loading=
"row.loading"
@
click=
"getResult(row)"
>
查询审批结果
</el-button>
<!-- 已立项 -->
<!-- 已立项 -->
<el-button
link
type=
"primary"
size=
"small"
<el-button
link
type=
"primary"
size=
"small"
v-if=
"row.projectLzType === '5'"
v-if=
"row.projectLzType === '5'"
@
click=
"fillDecision(row)"
@
click=
"fillDecision(row)"
>
决策填报
</el-button>
>
决策填报
</el-button>
<!-- 立项审批中 -->
<el-button
link
type=
"primary"
size=
"small"
v-else
:loading=
"row.loading"
@
click=
"viewDecision(row)"
>
查看
</el-button>
</
template
>
</
template
>
</common-table>
</common-table>
</div>
</div>
...
@@ -116,33 +116,18 @@
...
@@ -116,33 +116,18 @@
currentPage
.
value
=
page
;
currentPage
.
value
=
page
;
getProjectData
();
getProjectData
();
}
}
const
getResult
=
(
item
)
=>
{
const
viewDecision
=
(
item
)
=>
{
item
.
loading
=
true
;
router
.
push
({
proxy
.
$post
({
name
:
"addProject"
,
url
:
"/api/project/queryLixiangResult"
,
query
:
{
data
:
{
projectId
:
item
.
id
,
id
:
item
.
id
isPreview
:
true
},
callback
:
(
data
)
=>
{
item
.
loading
=
false
;
router
.
push
({
name
:
"addProject"
,
params
:
{
type
:
"xmlx"
},
query
:
{
projectId
:
item
.
id
}
});
}
}
})
})
;
};
};
const
fillDecision
=
(
item
)
=>
{
const
fillDecision
=
(
item
)
=>
{
router
.
push
({
router
.
push
({
name
:
"addProject"
,
name
:
"addProject"
,
params
:
{
type
:
"xmlx"
},
query
:
{
query
:
{
projectId
:
item
.
id
projectId
:
item
.
id
}
}
...
...
src/views/systemManage/message.vue
View file @
f71a1732
...
@@ -26,13 +26,40 @@
...
@@ -26,13 +26,40 @@
</
template
>
</
template
>
</common-table>
</common-table>
</div>
</div>
<el-dialog
v-model=
"messageDialogVisible"
title=
""
width=
"500"
align-center
@
close=
"closeDialog"
>
<div
class=
"message-wrap"
>
<div
class=
"message-title"
>
{{ messageInfo.title }}
</div>
<div
class=
"message-content"
>
<div
class=
"label"
>
消息类型:
</div>
<div
class=
"info"
>
{{ messageInfo.type === 2 ? "项目初步审核" : messageInfo.type === 3 ? "项目终审" : "系统消息" }}
</div>
</div>
<div
class=
"message-content"
>
<div
class=
"label"
>
时间:
</div>
<div
class=
"info"
>
{{ proxy.moment(messageInfo.createdAt).format("YYYY-MM-DD HH:mm:SS") }}
</div>
</div>
<div
class=
"message-content"
>
<div
class=
"label"
>
备注:
</div>
<div
class=
"info"
>
{{ messageInfo.content }}
</div>
</div>
</div>
<
template
#
footer
>
<div
class=
"dialog-footer"
>
<el-button
@
click=
"closeDialog"
>
关闭
</el-button>
<!--
<el-button
type=
"primary"
@
click=
"toProjectPage"
>
去处理
</el-button>
-->
</div>
</
template
>
</el-dialog>
</div>
</div>
</template>
</template>
<
script
setup
>
<
script
setup
>
import
{
ref
,
reactive
,
onMounted
,
getCurrentInstance
,
computed
,
nextTick
}
from
"vue"
;
import
{
ref
,
reactive
,
onMounted
,
getCurrentInstance
,
computed
,
nextTick
}
from
"vue"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useRouter
}
from
"vue-router"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
const
{
proxy
}
=
getCurrentInstance
();
const
loading
=
ref
(
false
);
const
loading
=
ref
(
false
);
// 表格数据
// 表格数据
...
@@ -43,10 +70,37 @@ const pageSize = ref(10);
...
@@ -43,10 +70,37 @@ const pageSize = ref(10);
// 表格列配置
// 表格列配置
const
tableColumns
=
[
const
tableColumns
=
[
{
{
prop
:
"
nam
e"
,
prop
:
"
titl
e"
,
label
:
"标题"
,
label
:
"标题"
,
minWidth
:
100
minWidth
:
100
},
},
{
prop
:
"type"
,
label
:
"消息类型"
,
width
:
120
,
align
:
"center"
,
formatter
:
(
data
)
=>
{
return
data
.
type
===
2
?
"项目初步审核"
:
data
.
type
===
3
?
"项目终审"
:
"系统消息"
;
}
},
{
prop
:
"isRead"
,
label
:
"状态"
,
width
:
90
,
align
:
"center"
,
formatter
:
(
data
)
=>
{
return
data
.
isRead
?
"已读"
:
"未读"
;
}
},
{
prop
:
"createdAt"
,
label
:
"时间"
,
width
:
180
,
align
:
"center"
,
formatter
:
(
data
)
=>
{
return
proxy
.
moment
(
data
.
createdAt
).
format
(
"YYYY-MM-DD HH:mm:SS"
);
}
},
{
{
prop
:
"operations"
,
prop
:
"operations"
,
label
:
"操作"
,
label
:
"操作"
,
...
@@ -88,8 +142,81 @@ const handleCurrentPageChange = (page) => {
...
@@ -88,8 +142,81 @@ const handleCurrentPageChange = (page) => {
onMounted
(()
=>
{
onMounted
(()
=>
{
loadTableData
();
loadTableData
();
});
});
// 获取信息详情
let
messageDialogVisible
=
ref
(
false
);
let
messageInfo
=
ref
({});
const
handlePreview
=
(
item
)
=>
{
proxy
.
$post
({
url
:
"/api/message/getMessageInfo"
,
data
:
{
id
:
item
.
id
},
callback
:
(
data
)
=>
{
messageDialogVisible
.
value
=
true
;
messageInfo
.
value
=
data
;
},
error
:
(
err
)
=>
{
ElMessage
.
error
(
"加载数据失败"
);
},
});
}
const
closeDialog
=
()
=>
{
messageInfo
.
value
=
{};
messageDialogVisible
.
value
=
false
;
}
// 跳转到对应项目
const
toProjectPage
=
()
=>
{
router
.
push
({
name
:
"addProject"
,
query
:
{
projectId
:
messageInfo
.
value
.
projectId
,
isPreview
:
true
}
});
}
// 删除
const
handleDelete
=
(
row
)
=>
{
ElMessageBox
.
confirm
(
`确定删除该条消息?`
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
}).
then
(()
=>
{
proxy
.
$post
({
url
:
"/api/message/deleteMessage"
,
data
:
{
id
:
row
.
id
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
loadTableData
();
},
error
:
(
err
)
=>
{
ElMessage
.
error
(
"删除失败:"
,
err
);
},
});
});
}
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
@import "@/styles/manage.less";
@import "@/styles/manage.less";
.message-wrap{
.message-title{
font-size: 16px;
font-weight: 600;
margin: 10px 0;
}
.message-content{
display: flex;
align-items: flex-start;
margin-bottom: 10px;
.label{
width: 80px;
text-align: justify;
text-align-last: justify;
}
.info{
flex: 1;
width: 0;
}
}
}
</
style
>
</
style
>
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